Sfoglia il codice sorgente

* fixed debug info generation for static symbols + IE in case it cannot
be generated (rather than an undefined function result)

git-svn-id: trunk@6187 -

Jonas Maebe 18 anni fa
parent
commit
e541f19ef5
1 ha cambiato i file con 10 aggiunte e 4 eliminazioni
  1. 10 4
      compiler/symsym.pas

+ 10 - 4
compiler/symsym.pas

@@ -1132,13 +1132,19 @@ implementation
     function tfieldvarsym.mangledname:string;
       var
         srsym : tsym;
-        srsymtable : TSymtable;
+        srsymtable : tsymtable;
       begin
         if sp_static in symoptions then
           begin
-            searchsym(lower(owner.name^)+'_'+name,srsym,srsymtable);
-            if assigned(srsym) then
-             result:=srsym.mangledname;
+            if searchsym(lower(owner.name^)+'_'+name,srsym,srsymtable) then
+              result:=srsym.mangledname
+            { when generating the debug info for the module in which the }
+            { symbol is defined, the localsymtable of that module is     }
+            { already popped from the symtablestack                      }
+            else if searchsym_in_module(current_module,lower(owner.name^)+'_'+name,srsym,srsymtable) then
+              result:=srsym.mangledname
+            else
+              internalerror(2007012501);
           end
         else
           result:=inherited mangledname;