Changeset 45 in dev for BasicCompiler64/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
  • BasicCompiler64/CParameter.cpp

    r31 r45  
    391391                StackOffsetOfTempObject[i2] = pobj_sf->push(reg);
    392392
    393                 useTempParameters[i2] = true;
    394                 useTempObject = true;
    395 
    396                 types[i2].type = type;
    397                 types[i2].u.lpIndex = lpVarIndex;
     393                bool result = CheckDifferentType(
     394                    DummyTypeInfo.type,
     395                    DummyTypeInfo.u.lpIndex,
     396                    type,
     397                    lpVarIndex,
     398                    FuncName,
     399                    i2);
     400
     401                if( result ){
     402                    useTempParameters[i2] = true;
     403                    useTempObject = true;
     404
     405                    types[i2].type = type;
     406                    types[i2].u.lpIndex = lpVarIndex;
     407                }
    398408            }
    399409        }
     
    415425            //call destructor
    416426            int i5 = types[i2].u.pobj_Class->DestructorMemberSubIndex;
    417             op_call( types[i2].u.pobj_Class->ppobj_Method[i5]->psi );
     427            if( i5 != -1 ){
     428                op_call( types[i2].u.pobj_Class->ppobj_Method[i5]->psi );
     429            }
    418430
    419431            //メモリを解放する
Note: See TracChangeset for help on using the changeset viewer.