فهرست منبع

* since we insert the internal ansistring record types in the symtable of
the current module, also search it only there so that it doesn't depend
on the state of the symtablestack (hopefully fixes mantis #28109)

git-svn-id: trunk@30879 -

Jonas Maebe 10 سال پیش
والد
کامیت
b5081d76c6
1فایلهای تغییر یافته به همراه5 افزوده شده و 3 حذف شده
  1. 5 3
      compiler/aasmcnst.pas

+ 5 - 3
compiler/aasmcnst.pas

@@ -389,6 +389,7 @@ implementation
 
    uses
      verbose,globals,systems,widestr,
+     fmodule,
      symbase,symtable,defutil;
 
 {****************************************************************************
@@ -1314,12 +1315,13 @@ implementation
        if optionalname<>'' then
          begin
            if optionalname[1]='$' then
-             found:=searchsym_type(copy(optionalname,2,length(optionalname)),srsym,srsymtable)
+             found:=searchsym_in_module(current_module,copy(optionalname,2,length(optionalname)),srsym,srsymtable)
            else
-             found:=searchsym_type(optionalname,srsym,srsymtable);
+             found:=searchsym_in_module(current_module,optionalname,srsym,srsymtable);
            if found then
              begin
-               if ttypesym(srsym).typedef.typ<>recorddef then
+               if (srsym.typ<>typesym) or
+                  (ttypesym(srsym).typedef.typ<>recorddef) then
                  internalerror(2014091207);
                result:=trecorddef(ttypesym(srsym).typedef);
                maybe_begin_aggregate(result);