Browse Source

* fix for tests/test/testrang.pp bug

pierre 25 years ago
parent
commit
eb59e0b11c
4 changed files with 30 additions and 9 deletions
  1. 6 1
      compiler/globals.pas
  2. 7 3
      compiler/scandir.inc
  3. 9 1
      compiler/scanner.pas
  4. 8 4
      compiler/switches.pas

+ 6 - 1
compiler/globals.pas

@@ -163,6 +163,8 @@ unit globals;
        aktglobalswitches : tglobalswitches;
        aktglobalswitches : tglobalswitches;
        aktmoduleswitches : tmoduleswitches;
        aktmoduleswitches : tmoduleswitches;
        aktlocalswitches  : tlocalswitches;
        aktlocalswitches  : tlocalswitches;
+       nextaktlocalswitches : tlocalswitches;
+       localswitcheschanged : boolean;
        aktmodeswitches   : tmodeswitches;
        aktmodeswitches   : tmodeswitches;
        {$IFDEF testvarsets}
        {$IFDEF testvarsets}
         aktsetalloc,
         aktsetalloc,
@@ -1566,7 +1568,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.58  2000-04-14 12:27:57  pierre
+  Revision 1.59  2000-05-03 14:36:57  pierre
+   * fix for tests/test/testrang.pp bug
+
+  Revision 1.58  2000/04/14 12:27:57  pierre
    * setfiletime to both files in synchronize
    * setfiletime to both files in synchronize
 
 
   Revision 1.57  2000/03/23 15:35:47  peter
   Revision 1.57  2000/03/23 15:35:47  peter

+ 7 - 3
compiler/scandir.inc

@@ -588,9 +588,10 @@ const
         if (sw<>cs_localnone) and (state in ['-','+']) then
         if (sw<>cs_localnone) and (state in ['-','+']) then
          begin
          begin
            if state='-' then
            if state='-' then
-            aktlocalswitches:=aktlocalswitches-[sw]
+            nextaktlocalswitches:=aktlocalswitches-[sw]
            else
            else
-            aktlocalswitches:=aktlocalswitches+[sw];
+            nextaktlocalswitches:=aktlocalswitches+[sw];
+           localswitcheschanged:=true;
          end;
          end;
       end;
       end;
 
 
@@ -1332,7 +1333,10 @@ const
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.78  2000-04-14 11:16:10  pierre
+  Revision 1.79  2000-05-03 14:36:58  pierre
+   * fix for tests/test/testrang.pp bug
+
+  Revision 1.78  2000/04/14 11:16:10  pierre
     * partial linklib change
     * partial linklib change
       I could not use Pavel's code because it broke the current way
       I could not use Pavel's code because it broke the current way
       linklib is used, which is messy :(
       linklib is used, which is messy :(

+ 9 - 1
compiler/scanner.pas

@@ -1164,6 +1164,11 @@ implementation
       label
       label
          exit_label;
          exit_label;
       begin
       begin
+        if localswitcheschanged then
+          begin
+            aktlocalswitches:=nextaktlocalswitches;
+            localswitcheschanged:=false;
+          end;
       { was there already a token read, then return that token }
       { was there already a token read, then return that token }
         if nexttoken<>NOTOKEN then
         if nexttoken<>NOTOKEN then
          begin
          begin
@@ -1811,7 +1816,10 @@ exit_label:
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.110  2000-04-08 20:18:53  michael
+  Revision 1.111  2000-05-03 14:36:58  pierre
+   * fix for tests/test/testrang.pp bug
+
+  Revision 1.110  2000/04/08 20:18:53  michael
   * Fixed bug in readcomment that was dropping * characters
   * Fixed bug in readcomment that was dropping * characters
 
 
   Revision 1.109  2000/03/13 21:21:57  peter
   Revision 1.109  2000/03/13 21:21:57  peter

+ 8 - 4
compiler/switches.pas

@@ -90,9 +90,10 @@ begin
  unsupportedsw : Message1(scan_w_unsupported_switch,'$'+switch);
  unsupportedsw : Message1(scan_w_unsupported_switch,'$'+switch);
        localsw : begin
        localsw : begin
                    if state='+' then
                    if state='+' then
-                    aktlocalswitches:=aktlocalswitches+[tlocalswitch(setsw)]
+                    nextaktlocalswitches:=aktlocalswitches+[tlocalswitch(setsw)]
                    else
                    else
-                    aktlocalswitches:=aktlocalswitches-[tlocalswitch(setsw)];
+                    nextaktlocalswitches:=aktlocalswitches-[tlocalswitch(setsw)];
+                   localswitcheschanged:=true;
                  { Message for linux which has global checking only }
                  { Message for linux which has global checking only }
                    if (switch='S') and (
                    if (switch='S') and (
 {$ifdef i386}
 {$ifdef i386}
@@ -171,7 +172,10 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.26  2000-02-09 13:23:04  peter
+  Revision 1.27  2000-05-03 14:36:58  pierre
+   * fix for tests/test/testrang.pp bug
+
+  Revision 1.26  2000/02/09 13:23:04  peter
     * log truncated
     * log truncated
 
 
   Revision 1.25  2000/01/07 01:14:39  peter
   Revision 1.25  2000/01/07 01:14:39  peter
@@ -186,4 +190,4 @@ end.
   Revision 1.22  1999/08/01 23:35:06  michael
   Revision 1.22  1999/08/01 23:35:06  michael
   * Alpha changes
   * Alpha changes
 
 
-}
+}