peter 26 years ago
parent
commit
83d04caf8b
1 changed files with 25 additions and 4 deletions
  1. 25 4
      compiler/tcmem.pas

+ 25 - 4
compiler/tcmem.pas

@@ -264,9 +264,21 @@ implementation
          if codegenerror then
          if codegenerror then
            exit;
            exit;
 
 
-         { we should allow loc_mem for @string }
-         if not(p^.left^.location.loc in [LOC_MEM,LOC_REFERENCE]) then
-           CGMessage(cg_e_illegal_expression);
+         { don't allow constants }
+         if is_constnode(p^.left) then
+          begin
+            aktfilepos:=p^.left^.fileinfo;
+            Comment(V_Error,'can''t get the address of constants')
+          end
+         else
+           begin
+             { we should allow loc_mem for @string }
+             if not(p^.left^.location.loc in [LOC_MEM,LOC_REFERENCE]) then
+               begin
+                 aktfilepos:=p^.left^.fileinfo;
+                 CGMessage(cg_e_illegal_expression);
+               end;
+           end;
 
 
          p^.registers32:=p^.left^.registers32;
          p^.registers32:=p^.left^.registers32;
          p^.registersfpu:=p^.left^.registersfpu;
          p^.registersfpu:=p^.left^.registersfpu;
@@ -570,7 +582,16 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.18  1999-06-03 09:34:12  peter
+  Revision 1.19  1999-07-05 16:24:17  peter
+    * merged
+
+  Revision 1.18.2.2  1999/07/05 16:22:56  peter
+    * error if @constant
+
+  Revision 1.18.2.1  1999/06/28 00:33:53  pierre
+   * better error position bug0269
+
+  Revision 1.18  1999/06/03 09:34:12  peter
     * better methodpointer check for proc->procvar
     * better methodpointer check for proc->procvar
 
 
   Revision 1.17  1999/05/27 19:45:24  peter
   Revision 1.17  1999/05/27 19:45:24  peter