Browse Source

* don't put the temp of a withnode in a register if debugging info is on,
because then our stabs generation internalerror's

Jonas Maebe 21 years ago
parent
commit
43306edc96
1 changed files with 11 additions and 2 deletions
  1. 11 2
      compiler/pstatmnt.pas

+ 11 - 2
compiler/pstatmnt.pas

@@ -436,7 +436,12 @@ implementation
                  htype:=p.resulttype
                  htype:=p.resulttype
                else
                else
                  htype.setdef(tpointerdef.create(p.resulttype));
                  htype.setdef(tpointerdef.create(p.resulttype));
-               loadp:=ctempcreatenode.create_reg(htype,POINTER_SIZE,tt_persistent);
+               { we can't generate debuginfo for a withnode stored in a }
+               { register                                               }
+               if (cs_debuginfo in aktmoduleswitches) then
+                 loadp:=ctempcreatenode.create(htype,POINTER_SIZE,tt_persistent)
+               else
+                 loadp:=ctempcreatenode.create_reg(htype,POINTER_SIZE,tt_persistent);
                resulttypepass(loadp);
                resulttypepass(loadp);
                if hasimplicitderef then
                if hasimplicitderef then
                 begin
                 begin
@@ -1087,7 +1092,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.127  2004-02-03 16:46:51  jonas
+  Revision 1.128  2004-02-03 19:47:45  jonas
+    * don't put the temp of a withnode in a register if debugging info is on,
+      because then our stabs generation internalerror's
+
+  Revision 1.127  2004/02/03 16:46:51  jonas
     + support to store ttempcreate/ref/deletenodes in registers
     + support to store ttempcreate/ref/deletenodes in registers
     * put temps for withnodes and some newnodes in registers
     * put temps for withnodes and some newnodes in registers
      Note: this currently only works because calling ungetregister()
      Note: this currently only works because calling ungetregister()