Bladeren bron

- removed ttai_lowleveltypedconstbuilder.queue_addrn(), as we are always
implicitly taking the address of a complex expression in a typed constant
(you cannot put the contents of another memory location in a typed
constant)

git-svn-id: trunk@31252 -

Jonas Maebe 10 jaren geleden
bovenliggende
commit
e93660c170
3 gewijzigde bestanden met toevoegingen van 3 en 16 verwijderingen
  1. 0 7
      compiler/aasmcnst.pas
  2. 0 1
      compiler/llvm/nllvmtcon.pas
  3. 3 8
      compiler/ngtcon.pas

+ 0 - 7
compiler/aasmcnst.pas

@@ -343,8 +343,6 @@ type
      function queue_subscriptn_multiple_by_name(def: tabstractrecorddef; const fields: array of TIDString): tdef;
      { queue a type conversion operation }
      procedure queue_typeconvn(fromdef, todef: tdef); virtual;
-     { queue an address taking operation }
-     procedure queue_addrn(fromdef, todef: tdef); virtual;
      { finalise the queue (so a new one can be created) and flush the
         previously queued operations, applying them in reverse order on a...}
      { ... procdef }
@@ -1534,11 +1532,6 @@ implementation
        { do nothing }
      end;
 
-   procedure ttai_typedconstbuilder.queue_addrn(fromdef, todef: tdef);
-     begin
-       { do nothing }
-     end;
-
 
    procedure ttai_typedconstbuilder.queue_emit_proc(pd: tprocdef);
      begin

+ 0 - 1
compiler/llvm/nllvmtcon.pas

@@ -313,7 +313,6 @@ implementation
           { pointerdef to the string data array }
           dataptrdef:=cpointerdef.getreusable(field.vardef);
           queue_init(charptrdef);
-          queue_addrn(dataptrdef,charptrdef);
           queue_subscriptn(strrecdef,field);
           queue_emit_asmsym(ll.lab,strrecdef);
         end

+ 3 - 8
compiler/ngtcon.pas

@@ -851,9 +851,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
               { we now emit the address of the first element of the array
                 containing the string data }
               ftcb.queue_init(def);
-              { address of ... }
-              ftcb.queue_addrn(def.pointeddef,def);
-              { ... the first element ... }
+              { the first element ... }
               ftcb.queue_vecn(datadef,0);
               { ... of the string array }
               ftcb.queue_emit_asmsym(ll,datadef);
@@ -888,9 +886,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
                      { we now emit the address of the first element of the array
                        containing the string data }
                      ftcb.queue_init(def);
-                     { address of ... }
-                     ftcb.queue_addrn(def.pointeddef,def);
-                     { ... the first element ... }
+                     { the first element ... }
                      ftcb.queue_vecn(datadef,0);
                      { ... of the string array }
                      ftcb.queue_emit_asmsym(ll,datadef);
@@ -932,7 +928,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
                                ftcb.queue_typeconvn(ttypeconvnode(hp).left.resultdef,hp.resultdef);
                            end;
                          addrn :
-                           ftcb.queue_addrn(taddrnode(hp).left.resultdef,hp.resultdef);
+                           { nothing, is implicit };
                          else
                            Message(parser_e_illegal_expression);
                        end;
@@ -1357,7 +1353,6 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
         { remove addrn which we also don't need here }
         if n.nodetype=addrn then
           begin
-            ftcb.queue_addrn(taddrnode(n).left.resultdef,n.resultdef);
             tmpn:=taddrnode(n).left;
             taddrnode(n).left:=nil;
             n.free;