Browse Source

* fixed + record.field expressions

peter 25 years ago
parent
commit
fdb8555bdb
2 changed files with 18 additions and 2 deletions
  1. 9 1
      compiler/ra386att.pas
  2. 9 1
      compiler/ra386int.pas

+ 9 - 1
compiler/ra386att.pas

@@ -988,6 +988,11 @@ Begin
                        hs:=ptypedconstsym(srsym)^.mangledname;
                        hs:=ptypedconstsym(srsym)^.mangledname;
                      procsym :
                      procsym :
                        hs:=pprocsym(srsym)^.mangledname;
                        hs:=pprocsym(srsym)^.mangledname;
+                     typesym :
+                       begin
+                         if not(ptypesym(srsym)^.restype.def^.deftype in [recorddef,objectdef]) then
+                          Message(asmr_e_wrong_sym_type);
+                       end;
                      else
                      else
                        Message(asmr_e_wrong_sym_type);
                        Message(asmr_e_wrong_sym_type);
                    end;
                    end;
@@ -2097,7 +2102,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.84  2000-06-18 18:07:06  peter
+  Revision 1.85  2000-06-18 19:09:31  peter
+    * fixed + record.field expressions
+
+  Revision 1.84  2000/06/18 18:07:06  peter
     * use new illegal_char method
     * use new illegal_char method
 
 
   Revision 1.83  2000/06/15 18:07:07  peter
   Revision 1.83  2000/06/15 18:07:07  peter

+ 9 - 1
compiler/ra386int.pas

@@ -878,6 +878,11 @@ Begin
                        hs:=ptypedconstsym(srsym)^.mangledname;
                        hs:=ptypedconstsym(srsym)^.mangledname;
                      procsym :
                      procsym :
                        hs:=pprocsym(srsym)^.mangledname;
                        hs:=pprocsym(srsym)^.mangledname;
+                     typesym :
+                       begin
+                         if not(ptypesym(srsym)^.restype.def^.deftype in [recorddef,objectdef]) then
+                          Message(asmr_e_wrong_sym_type);
+                       end;
                      else
                      else
                        Message(asmr_e_wrong_sym_type);
                        Message(asmr_e_wrong_sym_type);
                    end;
                    end;
@@ -1897,7 +1902,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.75  2000-06-18 18:07:06  peter
+  Revision 1.76  2000-06-18 19:09:30  peter
+    * fixed + record.field expressions
+
+  Revision 1.75  2000/06/18 18:07:06  peter
     * use new illegal_char method
     * use new illegal_char method
 
 
   Revision 1.74  2000/06/15 18:07:08  peter
   Revision 1.74  2000/06/15 18:07:08  peter