Changeset 331 in dev for trunk/abdev/BasicCompiler64/Compile_Func.cpp
- Timestamp:
- Sep 27, 2007, 1:47:46 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/Compile_Func.cpp
r330 r331 70 70 return; 71 71 } 72 void Opcode_Func_AddressOf( const char *name ){72 void Opcode_Func_AddressOf( const char *name, const Type &baseType ){ 73 73 extern int cp; 74 74 const UserProc *pUserProc; 75 75 76 extern LONG_PTR ProcPtr_BaseIndex;77 if(ProcPtr_BaseIndex!=-1){76 if( baseType.IsProcPtr() ) 77 { 78 78 //左辺の型にのっとり、オーバーロードを解決 79 79 … … 86 86 87 87 //オーバーロードを解決 88 pUserProc=OverloadSolution(name,subs,compiler.GetObjectModule().meta.GetProcPointers()[ ProcPtr_BaseIndex]->Params(), Type() );88 pUserProc=OverloadSolution(name,subs,compiler.GetObjectModule().meta.GetProcPointers()[baseType.GetIndex()]->Params(), Type() ); 89 89 90 90 if(!pUserProc){ … … 299 299 } 300 300 301 bool Opcode_CallFunc( const char *Parameter, const int FuncNum, Type &resultType, bool isCallOn ){ 301 bool Opcode_CallFunc( const char *Parameter, const int FuncNum, const Type &baseType, Type &resultType, bool isCallOn ) 302 { 302 303 switch(FuncNum){ 303 304 case FUNC_LEN: … … 306 307 break; 307 308 case FUNC_ADDRESSOF: 308 if( isCallOn ) Opcode_Func_AddressOf( Parameter);309 if( isCallOn ) Opcode_Func_AddressOf( Parameter, baseType ); 309 310 resultType.SetBasicType( DEF_PTR_VOID ); 310 311 break;
Note:
See TracChangeset
for help on using the changeset viewer.