Ignore:
Timestamp:
Aug 29, 2007, 9:05:22 AM (17 years ago)
Author:
dai_9181
Message:

静的リンクライブラリにより、複数のグローバル領域が存在することになったのでそれぞれを関数ベースに分けた

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/Compile_Func.cpp

    r266 r308  
    108108
    109109        char ObjectName[VN_SIZE];
    110         int RefType;
    111         SplitObjectName(name,ObjectName,&RefType);
     110        ReferenceKind referenceKind;
     111        SplitObjectName(name,ObjectName, referenceKind );
    112112
    113113        if(ObjectName[0]){
     
    120120
    121121                //参照タイプが整合しているかをチェック
    122                 if(type.GetBasicType()!=RefType) SetError(104,ObjectName,cp);
     122                if( !( type.IsObject() && referenceKind == RefDot
     123                    || type.IsObjectPtr() && referenceKind == RefPointer ) )
     124                {
     125                    SetError(104,ObjectName,cp);
     126                }
    123127
    124128                if(type.IsObjectPtr()){
     
    166170void Opcode_Func_SizeOf( const string &typeName ){
    167171    Type tempType;
    168     if( !Compiler::StringToType( typeName, tempType ) ){
     172    if( !compiler.StringToType( typeName, tempType ) ){
    169173        SetError(3,typeName,cp);
    170174        return;
     
    268272    else{
    269273        //mov rax,ptr[rax]
    270         compiler.codeGenerator.op_mov_RM(GetTypeSize(type,-1),REG_RAX,REG_RAX,0,MOD_BASE);
     274        compiler.codeGenerator.op_mov_RM(Type(type).GetSize(),REG_RAX,REG_RAX,0,MOD_BASE);
    271275    }
    272276}
Note: See TracChangeset for help on using the changeset viewer.