Browse Source

* fix for bug #988

peter 25 years ago
parent
commit
5db0ddd7e9
2 changed files with 12 additions and 4 deletions
  1. 7 2
      compiler/cg386ld.pas
  2. 5 2
      compiler/types.pas

+ 7 - 2
compiler/cg386ld.pas

@@ -300,7 +300,9 @@ implementation
                               begin
                               begin
                                  hregister:=p^.left^.location.register;
                                  hregister:=p^.left^.location.register;
                                  ungetregister32(p^.left^.location.register);
                                  ungetregister32(p^.left^.location.register);
-                                 if not(pobjectdef(p^.left^.resulttype)^.is_class) then
+                                 if (p^.left^.resulttype^.deftype<>classrefdef) and
+                                    (p^.left^.resulttype^.deftype<>objectdef) and
+                                    not(pobjectdef(p^.left^.resulttype)^.is_class) then
                                    CGMessage(cg_e_illegal_expression);
                                    CGMessage(cg_e_illegal_expression);
                               end;
                               end;
 
 
@@ -1000,7 +1002,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.108  2000-05-18 17:05:15  peter
+  Revision 1.109  2000-06-30 22:12:26  peter
+    * fix for bug 988
+
+  Revision 1.108  2000/05/18 17:05:15  peter
     * fixed size of const parameters in asm readers
     * fixed size of const parameters in asm readers
 
 
   Revision 1.107  2000/05/14 18:50:35  florian
   Revision 1.107  2000/05/14 18:50:35  florian

+ 5 - 2
compiler/types.pas

@@ -325,7 +325,7 @@ implementation
     { true if a function can be assigned to a procvar }
     { true if a function can be assigned to a procvar }
     function proc_to_procvar_equal(def1:pprocdef;def2:pprocvardef) : boolean;
     function proc_to_procvar_equal(def1:pprocdef;def2:pprocvardef) : boolean;
       const
       const
-        po_comp = po_compatibility_options-[po_methodpointer];
+        po_comp = po_compatibility_options-[po_methodpointer,po_classmethod];
       var
       var
         ismethod : boolean;
         ismethod : boolean;
       begin
       begin
@@ -1085,7 +1085,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.101  2000-06-20 12:47:53  pierre
+  Revision 1.102  2000-06-30 22:12:26  peter
+    * fix for bug 988
+
+  Revision 1.101  2000/06/20 12:47:53  pierre
     * equal_paras and convertable_paras changed by transforming third parameter
     * equal_paras and convertable_paras changed by transforming third parameter
       into an enum with three possible values:
       into an enum with three possible values:
       cp_none, cp_value_equal_const and cp_all.
       cp_none, cp_value_equal_const and cp_all.