Преглед изворни кода

Possible fix for the OpenSolaris x86_64 cycle failure, due to bind change from AB_GLOBAL back to AB_LOCAL after code generation, which lead to invalid code

git-svn-id: trunk@29431 -
pierre пре 10 година
родитељ
комит
87b9c1b2ea
1 измењених фајлова са 6 додато и 1 уклоњено
  1. 6 1
      compiler/aasmdata.pas

+ 6 - 1
compiler/aasmdata.pas

@@ -406,7 +406,12 @@ implementation
                  internalerror(200603261);
              end;
            hp.typ:=_typ;
-           hp.bind:=_bind;
+{$ifdef x86_64}
+           { On x86_64 at least changing bind from AB_GLOBAL to AB_LOCAL is wrong
+             if bind is already AB_GLOBAL, GOT might be involved, so do not change. }
+           if (_bind<>AB_LOCAL) or (hp.bind<>AB_GLOBAL) then
+{$endif x86_64}
+             hp.bind:=_bind;
          end
         else
          begin