Changeset 273 in dev for trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
- Timestamp:
- Aug 11, 2007, 4:03:49 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
r265 r273 970 970 // グローバル変数を追加 971 971 ///////////////////////// 972 extern int AllInitGlobalVarSize;973 extern int AllGlobalVarSize;974 972 975 973 if( compiler.GetObjectModule().meta.GetGlobalVars().DuplicateCheck( Symbol( name ) ) ){ … … 997 995 998 996 // 変数を追加 999 compiler.GetObjectModule().meta.GetGlobalVars().push_back( pVar ); 1000 1001 //アラインメントを考慮 1002 int alignment = 0; 1003 if( pVar->GetType().IsStruct() ){ 1004 alignment = pVar->GetType().GetClass().GetFixedAlignment(); 1005 } 1006 1007 if(InitBuf[0]||dwFlag==DIMFLAG_INITDEBUGVAR){ 1008 //初期バッファがあるとき 1009 1010 if( alignment ){ 1011 if( AllInitGlobalVarSize % alignment ){ 1012 AllInitGlobalVarSize += alignment - (AllInitGlobalVarSize % alignment); 1013 } 1014 } 1015 1016 pVar->SetOffsetAddress( AllInitGlobalVarSize ); 1017 AllInitGlobalVarSize += pVar->GetMemorySize(); 1018 } 1019 else{ 1020 //初期バッファがないとき 1021 1022 if( alignment ){ 1023 if( AllGlobalVarSize % alignment ){ 1024 AllGlobalVarSize += alignment - (AllGlobalVarSize % alignment); 1025 } 1026 } 1027 1028 pVar->SetOffsetAddress( AllGlobalVarSize | 0x80000000 ); 1029 AllGlobalVarSize += pVar->GetMemorySize(); 1030 } 997 compiler.GetObjectModule().meta.GetGlobalVars().Add( 998 pVar, 999 ( InitBuf[0] != 0 || dwFlag == DIMFLAG_INITDEBUGVAR ) 1000 ); 1031 1001 1032 1002 if(InitBuf[0]){ … … 1035 1005 //初期バッファにデータをセット 1036 1006 extern BYTE *initGlobalBuf; 1037 initGlobalBuf=(BYTE *)HeapReAlloc(hHeap, 1007 initGlobalBuf = (BYTE *)HeapReAlloc( 1008 hHeap, 1038 1009 HEAP_ZERO_MEMORY, 1039 1010 initGlobalBuf, 1040 AllInitGlobalVarSize); 1011 compiler.GetObjectModule().meta.GetGlobalVars().GetAllInitSize() 1012 ); 1041 1013 1042 1014 result = SetInitGlobalData(pVar->GetOffsetAddress(),
Note:
See TracChangeset
for help on using the changeset viewer.