Changeset 28 in dev for BasicCompiler64/CParameter.cpp


Ignore:
Timestamp:
Jan 8, 2007, 6:34:44 AM (18 years ago)
Author:
dai_9181
Message:

・【32ビットコンパイラ】戻り値に実態オブジェクトを持つインデクサを呼び出すと強制終了してしまうバグを修正。
・仮想関数のオーバーロードが正常に動作しないバグを修正。
・純仮想関数(抽象メソッド)が仮想関数でオーバーロードされていると、クラスのインスタンスが生成できてしまうバグを修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/CParameter.cpp

    r20 r28  
    546546    }
    547547
     548    //戻り値用の変数名を取得
     549    char *lpszVarNameToReturn;
     550    if(FuncName[0]==1&&FuncName[1]==ESC_OPERATOR) lpszVarNameToReturn="_System_ReturnValue";
     551    else lpszVarNameToReturn=FuncName;
     552
    548553    //パラメータをレジスタとスタックに格納
    549554    int CalcType;
     
    563568        }
    564569        if((i2==0||i2==1)&&ppi[i2].name){
    565             if(lstrcmp(ppi[i2].name,FuncName)==0){
     570            if(lstrcmp(ppi[i2].name,lpszVarNameToReturn)==0){
    566571                //オブジェクトメンバの第一または第二パラメータの戻り値用オブジェクト
    567572                continue;
Note: See TracChangeset for help on using the changeset viewer.