Changeset 116 in dev for BasicCompiler64/Compile_Calc.cpp


Ignore:
Timestamp:
May 12, 2007, 4:34:39 PM (17 years ago)
Author:
dai_9181
Message:

暗黙的なアップキャストを可能にした

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/Compile_Calc.cpp

    r75 r116  
    215215
    216216    if( calcType.IsObject() && !calcType.Equals( varType ) ){
    217         //キャスト演算子のオーバーロードに対応する
    218         CallCastOperatorProc(REG_RAX,calcType,bCalcUseHeap,varType);
     217        bool isUpCast = false;
     218        if( varType.IsObject() ){
     219            if( varType.GetClass().IsEqualsOrSubClass( &calcType.GetClass() ) ){
     220                isUpCast = true;
     221            }
     222        }
     223        if( !isUpCast ){
     224            //キャスト演算子のオーバーロードに対応する
     225            CallCastOperatorProc(REG_RAX,calcType,bCalcUseHeap,varType);
     226        }
    219227    }
    220228
Note: See TracChangeset for help on using the changeset viewer.