Browse Source

* more variant support

florian 24 years ago
parent
commit
7e8bc49786
3 changed files with 22 additions and 4 deletions
  1. 6 1
      compiler/htypechk.pas
  2. 11 1
      compiler/symdef.pas
  3. 5 2
      compiler/types.pas

+ 6 - 1
compiler/htypechk.pas

@@ -145,6 +145,8 @@ implementation
            (treetyp=starstarn) or
            (ld.deftype=recorddef) or
            (rd.deftype=recorddef) or
+           (ld.deftype=variantdef) or
+           (rd.deftype=variantdef) or
            ((rd.deftype=pointerdef) and
             not(is_pchar(rd) and
                 (is_chararray(ld) or
@@ -921,7 +923,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.24  2001-04-13 01:22:08  peter
+  Revision 1.25  2001-04-22 22:46:49  florian
+    * more variant support
+
+  Revision 1.24  2001/04/13 01:22:08  peter
     * symtable change to classes
     * range check generation and errors fixed, make cycle DEBUG=1 works
     * memory leaks fixed

+ 11 - 1
compiler/symdef.pas

@@ -140,6 +140,7 @@ interface
        tvariantdef = class(tstoreddef)
           constructor create;
           constructor load;
+          function gettypename:string;override;
           procedure write;override;
           procedure setsize;
           function needs_inittable : boolean;override;
@@ -2142,6 +2143,12 @@ implementation
       end;
 
 
+    function tvariantdef.gettypename : string;
+      begin
+         gettypename:='Variant';
+      end;
+
+
     procedure tvariantdef.write_rtti_data;
       begin
          rttiList.concat(Tai_const.Create_8bit(tkVariant));
@@ -5515,7 +5522,10 @@ Const local_symtable_index : longint = $8001;
 end.
 {
   $Log$
-  Revision 1.29  2001-04-21 12:03:12  peter
+  Revision 1.30  2001-04-22 22:46:49  florian
+    * more variant support
+
+  Revision 1.29  2001/04/21 12:03:12  peter
     * m68k updates merged from fixes branch
 
   Revision 1.28  2001/04/18 22:01:58  peter

+ 5 - 2
compiler/types.pas

@@ -740,6 +740,7 @@ implementation
         else
          begin
            case def.deftype of
+             variantdef,
              formaldef :
                push_addr_param:=true;
              recorddef :
@@ -1732,7 +1733,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.40  2001-04-18 22:02:00  peter
+  Revision 1.41  2001-04-22 22:46:49  florian
+    * more variant support
+
+  Revision 1.40  2001/04/18 22:02:00  peter
     * registration of targets and assemblers
 
   Revision 1.39  2001/04/13 01:22:17  peter
@@ -1868,5 +1872,4 @@ end.
 
   Revision 1.2  2000/07/13 11:32:53  michael
   + removed logs
-
 }