Browse Source

* Reset unwind_info.flags between procedures. Writing non-zero flags without handler ends up in corrupt unwind info.

git-svn-id: trunk@19403 -
sergei 14 years ago
parent
commit
a463fbc578
1 changed files with 2 additions and 0 deletions
  1. 2 0
      compiler/x86_64/win64unw.pas

+ 2 - 0
compiler/x86_64/win64unw.pas

@@ -255,6 +255,7 @@ begin
   FPrologueEndPos:=0;
   FPrologueEndPos:=0;
   FPrologueEndSeen:=false;
   FPrologueEndSeen:=false;
   FHandler:=nil;
   FHandler:=nil;
+  FFlags:=0;
 end;
 end;
 
 
 procedure TWin64CFI.end_frame(objdata:TObjData);
 procedure TWin64CFI.end_frame(objdata:TObjData);
@@ -274,6 +275,7 @@ begin
     Message(asmw_w_missing_endprologue);
     Message(asmw_w_missing_endprologue);
   FFrameStartSym:=nil;
   FFrameStartSym:=nil;
   FHandler:=nil;
   FHandler:=nil;
+  FFlags:=0;
   stringdispose(FName);
   stringdispose(FName);
 end;
 end;