Browse Source

* more fixes to get make cycle working

peter 25 years ago
parent
commit
8df98007d6
5 changed files with 33 additions and 17 deletions
  1. 7 4
      compiler/options.pas
  2. 5 2
      compiler/pdecobj.pas
  3. 5 2
      compiler/pdecsub.pas
  4. 5 2
      compiler/pexpr.pas
  5. 11 7
      compiler/symdef.pas

+ 7 - 4
compiler/options.pas

@@ -1222,6 +1222,9 @@ begin
 
 { Temporary defines, until things settle down }
   def_symbol('HASWIDECHAR');
+  def_symbol('HASOUT');
+  def_symbol('HASINTF');
+  def_symbol('INTERNSETLENGTH');
 
 {$ifdef SUPPORT_FIXED}
   def_symbol('HASFIXED');
@@ -1234,9 +1237,6 @@ begin
 {$endif cardinalmulfix}
   def_symbol('PACKENUMFIXED');
 
-{ New since 1.09 }
-  def_symbol('HASOUT');
-
 { some stuff for TP compatibility }
 {$ifdef i386}
   def_symbol('CPU86');
@@ -1497,7 +1497,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.12  2000-11-04 14:25:20  florian
+  Revision 1.13  2000-11-06 20:30:54  peter
+    * more fixes to get make cycle working
+
+  Revision 1.12  2000/11/04 14:25:20  florian
     + merged Attila's changes for interfaces, not tested yet
 
   Revision 1.11  2000/09/26 10:50:41  jonas

+ 5 - 2
compiler/pdecobj.pas

@@ -770,7 +770,7 @@ implementation
                          Message(parser_f_no_anonym_objects);
                        aktclass:=new(pobjectdef,init(classtype,n,nil));
                        if (cs_compilesystem in aktmoduleswitches) and
-                          (classtype=odt_interfacecom) and (n='IUNKNOWN') then
+                          (classtype=odt_interfacecom) and (upper(n)='IUNKNOWN') then
                          interface_iunknown:=aktclass;
                        aktclass^.objectoptions:=aktclass^.objectoptions+[oo_is_forward];
                      end;
@@ -1157,7 +1157,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.7  2000-11-04 18:03:57  florian
+  Revision 1.8  2000-11-06 20:30:55  peter
+    * more fixes to get make cycle working
+
+  Revision 1.7  2000/11/04 18:03:57  florian
     * fixed upper/lower case problem
 
   Revision 1.6  2000/11/04 17:31:00  florian

+ 5 - 2
compiler/pdecsub.pas

@@ -456,7 +456,7 @@ begin
   if assigned(procinfo^._class) then
    begin
      if (pos('_$$_',procprefix)=0) then
-      hs:=procprefix+'_$$_'+procinfo^._class^.objname^+'_$$_'+sp
+      hs:=procprefix+'_$$_'+upper(procinfo^._class^.objname^)+'_$$_'+sp
      else
       hs:=procprefix+'_$'+sp;
    end
@@ -1862,7 +1862,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.6  2000-11-04 14:25:20  florian
+  Revision 1.7  2000-11-06 20:30:55  peter
+    * more fixes to get make cycle working
+
+  Revision 1.6  2000/11/04 14:25:20  florian
     + merged Attila's changes for interfaces, not tested yet
 
   Revision 1.5  2000/11/01 23:04:37  peter

+ 5 - 2
compiler/pexpr.pas

@@ -1245,7 +1245,7 @@ implementation
                                      else
                                        begin
                                           { class reference ? }
-                                          if is_object(pd) then
+                                          if is_class(pd) then
                                             begin
                                                if getaddr and (token=_POINT) then
                                                  begin
@@ -2372,7 +2372,10 @@ _LECKKLAMMER : begin
 end.
 {
   $Log$
-  Revision 1.15  2000-11-04 14:25:20  florian
+  Revision 1.16  2000-11-06 20:30:55  peter
+    * more fixes to get make cycle working
+
+  Revision 1.15  2000/11/04 14:25:20  florian
     + merged Attila's changes for interfaces, not tested yet
 
   Revision 1.14  2000/10/31 22:02:49  peter

+ 11 - 7
compiler/symdef.pas

@@ -2957,9 +2957,9 @@ implementation
     procedure count_inittable_fields(sym : pnamedindexobject);
       begin
          if ((psym(sym)^.typ=varsym) and
-            pvarsym(sym)^.vartype.def^.needs_inittable)
-            and (pvarsym(sym)^.vartype.def^.deftype<>objectdef) or
-                  not(is_class(pdef(pvarsym(sym)^.vartype.def))) then
+             pvarsym(sym)^.vartype.def^.needs_inittable) {and
+             (pvarsym(sym)^.vartype.def^.deftype<>objectdef) or
+             not(is_class(pdef(pvarsym(sym)^.vartype.def)))} then
            inc(count);
       end;
 
@@ -4144,8 +4144,9 @@ Const local_symtable_index : longint = $8001;
             (objecttype=odt_class) and
             (upper(objname^)='TOBJECT') then
            class_tobject:=@self;
-         if (childof=nil) and (objecttype=odt_interfacecom) and
-           (objname^='IUNKNOWN') then
+         if (childof=nil) and
+            (objecttype=odt_interfacecom) and
+            (upper(objname^)='IUNKNOWN') then
            interface_iunknown:=@self;
 {$ifdef GDB}
          writing_stabs:=false;
@@ -5498,7 +5499,7 @@ Const local_symtable_index : longint = $8001;
         is_object:=
           assigned(def) and
           (def^.deftype=objectdef) and
-          (pobjectdef(def)^.objecttype=odt_class);
+          (pobjectdef(def)^.objecttype=odt_object);
       end;
 
     function is_cppclass(def: pdef): boolean;
@@ -5520,7 +5521,10 @@ Const local_symtable_index : longint = $8001;
 end.
 {
   $Log$
-  Revision 1.4  2000-11-04 14:25:22  florian
+  Revision 1.5  2000-11-06 20:30:55  peter
+    * more fixes to get make cycle working
+
+  Revision 1.4  2000/11/04 14:25:22  florian
     + merged Attila's changes for interfaces, not tested yet
 
   Revision 1.3  2000/11/02 12:04:10  pierre