Changeset 45 in dev for BasicCompiler32/CParameter.cpp


Ignore:
Timestamp:
Feb 2, 2007, 2:58:14 AM (18 years ago)
Author:
dai_9181
Message:

・オーバーロードが解決できない場合のエラーが表示されないバグを修正。
・DLL関数のByRefパラメータに変数以外の数値を指定すると正常にコンパイルされないバグを修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/CParameter.cpp

    r36 r45  
    395395                //↑ここでスタックに積む
    396396
    397                 useTempParameters[i2] = true;
    398                 useTempObject = true;
    399 
    400                 types[i2].type = type;
    401                 types[i2].u.lpIndex = lpVarIndex;
     397                bool result = CheckDifferentType(
     398                    DummyTypeInfo.type,
     399                    DummyTypeInfo.u.lpIndex,
     400                    type,
     401                    lpVarIndex,
     402                    FuncName,
     403                    i2);
     404
     405                if( result ){
     406                    useTempParameters[i2] = true;
     407                    useTempObject = true;
     408
     409                    types[i2].type = type;
     410                    types[i2].u.lpIndex = lpVarIndex;
     411                }
    402412
    403413                nCountOfTempObjects++;
     
    430440            //call destructor
    431441            int i5 = types[i2].u.pobj_Class->DestructorMemberSubIndex;
    432             op_call( types[i2].u.pobj_Class->ppobj_Method[i5]->psi );
     442            if( i5 != -1 ){
     443                op_call( types[i2].u.pobj_Class->ppobj_Method[i5]->psi );
     444            }
    433445
    434446
Note: See TracChangeset for help on using the changeset viewer.