Hi,

The description of TREE_ADDRESSABLE macro in tree.h says:

  "In ..._TYPE nodes, it means that objects of this type must
   be fully addressable.  This means that pieces of this
   object cannot go into register parameters, for example."

Yet  the  current  tree-sra  does  not check  this  flag  and  happily
scalarizes  variables of  such  types,  there are  even  tests in  our
regression testsuite that check  whether such types are indeed reduced
(such as g++.dg/tree-ssa/ssa-sra-1.C).

Moreover, such types  are very common in C++, the  one in the testcase
mentioned above is even quite simple.

On a  related note,  is the assert  in create_tmp_var()  checking this
addressability the requested type really necessary?

Is the comment outdated?  Or have  we been somehow lucky all this time
while ignoring a sensible requirement?

Thanks,

Martin

Reply via email to