Quellcode durchsuchen

* mark constant symbols used in preprocessor expressions as used, resolves #40108

florian vor 2 Jahren
Ursprung
Commit
8ef0f59025
2 geänderte Dateien mit 16 neuen und 0 gelöschten Zeilen
  1. 2 0
      compiler/scanner.pas
  2. 14 0
      tests/webtbs/tw40108.pp

+ 2 - 0
compiler/scanner.pas

@@ -2134,11 +2134,13 @@ type
                                   begin
                                     result.free;
                                     result:=texprvalue.create_const(tconstsym(srsym));
+                                    tconstsym(srsym).IncRefCount;
                                   end;
                                 enumsym:
                                   begin
                                     result.free;
                                     result:=texprvalue.create_int(tenumsym(srsym).value);
+//                                    tconstsym(srsym).IncRefCount;
                                   end;
                                 else
                                   ;

+ 14 - 0
tests/webtbs/tw40108.pp

@@ -0,0 +1,14 @@
+{ %opt=-Seh }
+{ %norun }
+program test;
+
+const
+  TheVersion = 1;
+
+begin
+  {$if TheVersion >= 1}
+  writeln('Version 1 or higher');
+  {$else}
+  writeln('Version < 1');
+  {$endif}
+end.