Prechádzať zdrojové kódy

* some m68k fixes (still not compilable !)
* new(tobj) does not give warning if tobj has no VMT !

pierre 26 rokov pred
rodič
commit
58bfc3ac78

+ 6 - 2
compiler/ag386nsm.pas

@@ -340,7 +340,7 @@ unit ag386nsm;
       ait_const2str:array[ait_const_32bit..ait_const_8bit] of string[8]=
         (#9'DD'#9,#9'DW'#9,#9'DB'#9);
 
-      ait_section2nasmstr : array[tsection] of string[6]=
+      ait_section2nasmstr : array[tsection] of string[8]=
        ('','.text','.data','.bss',
         '.idata2','.idata4','.idata5','.idata6','.idata7','.edata',
         '.stab','.stabstr','');
@@ -751,7 +751,11 @@ ait_stab_function_name : ;
 end.
 {
   $Log$
-  Revision 1.22  1999-03-02 02:56:11  peter
+  Revision 1.23  1999-03-04 13:55:39  pierre
+    * some m68k fixes (still not compilable !)
+    * new(tobj) does not give warning if tobj has no VMT !
+
+  Revision 1.22  1999/03/02 02:56:11  peter
     + stabs support for binary writers
     * more fixes and missing updates from the previous commit :(
 

+ 8 - 3
compiler/ag68kmit.pas

@@ -258,8 +258,9 @@ unit ag68kmit;
       ait_const2str:array[ait_const_32bit..ait_const_8bit] of string[8]=
         (#9'.long'#9,#9'.short'#9,#9'.byte'#9);
 
-      ait_section2str : array[tsection] of string[6]=
-       ('','.text','.data','.bss','.idata','.edata');
+      ait_section2str : array[tsection] of string[8]=
+       ('','.text','.data','.bss','.idata2','.idata4','.idata5','.idata6','.idata7',
+        '.edata','.stab','.stabstr');
 
     procedure tm68kmitasmlist.WriteTree(p:paasmoutput);
     var
@@ -665,7 +666,11 @@ ait_stab_function_name : funcname:=pai_stab_function_name(hp)^.str;
 end.
 {
   $Log$
-  Revision 1.19  1998-12-23 22:53:45  peter
+  Revision 1.20  1999-03-04 13:55:40  pierre
+    * some m68k fixes (still not compilable !)
+    * new(tobj) does not give warning if tobj has no VMT !
+
+  Revision 1.19  1998/12/23 22:53:45  peter
     * don't count ait_marker for lineinfo
 
   Revision 1.18  1998/12/11 00:02:40  peter

+ 6 - 2
compiler/ag68kmot.pas

@@ -247,7 +247,7 @@ unit ag68kmot;
 
     const
       section2str : array[tsection] of string[6]=
-       ('','CODE','DATA','BSS','','');
+       ('','CODE','DATA','BSS','','','','','','','','');
 
     procedure tm68kmotasmlist.WriteTree(p:paasmoutput);
     var
@@ -542,7 +542,11 @@ ait_labeled_instruction :
 end.
 {
   $Log$
-  Revision 1.16  1998-12-11 00:02:41  peter
+  Revision 1.17  1999-03-04 13:55:41  pierre
+    * some m68k fixes (still not compilable !)
+    * new(tobj) does not give warning if tobj has no VMT !
+
+  Revision 1.16  1998/12/11 00:02:41  peter
     + globtype,tokens,version unit splitted from globals
 
   Revision 1.15  1998/11/30 09:42:58  pierre

+ 10 - 2
compiler/pexpr.pas

@@ -1424,8 +1424,12 @@ unit pexpr;
 
                  if (pd^.deftype<>pointerdef) then
                    Message(type_e_pointer_type_expected)
-                 else if (ppointerdef(pd)^.definition^.deftype<>objectdef) then
+                 else if {(ppointerdef(pd)^.definition^.deftype<>objectdef)}
+                       token=RKLAMMER then
                   begin
+                    if (ppointerdef(pd)^.definition^.deftype=objectdef) and
+                       ((pobjectdef(ppointerdef(pd)^.definition)^.options and oo_hasvmt) <> 0)  then
+                     Message(parser_w_use_extended_syntax_for_objects);
                     p1:=gensinglenode(newn,nil);
                     p1^.resulttype:=pd2;
                     consume(RKLAMMER);
@@ -1932,7 +1936,11 @@ unit pexpr;
 end.
 {
   $Log$
-  Revision 1.85  1999-02-22 15:09:39  florian
+  Revision 1.86  1999-03-04 13:55:44  pierre
+    * some m68k fixes (still not compilable !)
+    * new(tobj) does not give warning if tobj has no VMT !
+
+  Revision 1.85  1999/02/22 15:09:39  florian
     * behaviaor of PROTECTED and PRIVATE fixed, works now like TP/Delphi
 
   Revision 1.84  1999/02/22 02:15:26  peter

+ 7 - 2
compiler/pstatmnt.pas

@@ -934,7 +934,8 @@ unit pstatmnt;
                  end
                else
                  begin
-                    if (ppointerdef(p^.resulttype)^.definition^.deftype=objectdef) then
+                    if (ppointerdef(p^.resulttype)^.definition^.deftype=objectdef) and
+                       ((pobjectdef(ppointerdef(p^.resulttype)^.definition)^.options and oo_hasvmt) <> 0)  then
                      Message(parser_w_use_extended_syntax_for_objects);
 
                      case ht of
@@ -1285,7 +1286,11 @@ unit pstatmnt;
 end.
 {
   $Log$
-  Revision 1.69  1999-03-02 02:56:15  peter
+  Revision 1.70  1999-03-04 13:55:45  pierre
+    * some m68k fixes (still not compilable !)
+    * new(tobj) does not give warning if tobj has no VMT !
+
+  Revision 1.69  1999/03/02 02:56:15  peter
     + stabs support for binary writers
     * more fixes and missing updates from the previous commit :(
 

+ 10 - 6
compiler/systems.pas

@@ -549,7 +549,7 @@ implementation
             asmbin : '';
             asmcmd : '';
             externals : true;
-            labelprefix : 'L';
+            labelprefix : '.L';
             comment : ''
           )
 {$endif i386}
@@ -914,7 +914,7 @@ implementation
             exeext      : '';
             os          : os_m68k_Amiga;
             link        : link_m68k_ld;
-            assem       : as_m68k_o;
+            assem       : as_m68k_as;
             ar          : ar_m68k_ar;
             res         : res_none;
             heapsize    : 128*1024;
@@ -938,7 +938,7 @@ implementation
             exeext      : '.ttp';
             os          : os_m68k_Atari;
             link        : link_m68k_ld;
-            assem       : as_m68k_o;
+            assem       : as_m68k_as;
             ar          : ar_m68k_ar;
             res         : res_none;
             heapsize    : 16*1024;
@@ -986,7 +986,7 @@ implementation
             exeext      : '';
             os          : os_m68k_Linux;
             link        : link_m68k_ld;
-            assem       : as_m68k_o;
+            assem       : as_m68k_as;
             ar          : ar_m68k_ar;
             res         : res_none;
             heapsize    : 128*1024;
@@ -1010,7 +1010,7 @@ implementation
             exeext      : '';
             os          : os_m68k_PalmOS;
             link        : link_m68k_ld;
-            assem       : as_m68k_o;
+            assem       : as_m68k_as;
             ar          : ar_m68k_ar;
             res         : res_none;
             heapsize    : 128*1024;
@@ -1354,7 +1354,11 @@ begin
 end.
 {
   $Log$
-  Revision 1.61  1999-03-03 11:41:51  pierre
+  Revision 1.62  1999-03-04 13:55:48  pierre
+    * some m68k fixes (still not compilable !)
+    * new(tobj) does not give warning if tobj has no VMT !
+
+  Revision 1.61  1999/03/03 11:41:51  pierre
     + stabs info corrected to give results near to GAS output
     * local labels (with .L are not stored in object anymore)
       so we get the same number of symbols as from GAS !