On Sat, May 04, 2013 at 10:34:52AM +0200, Eric Botcazou wrote:
> > I believe the real problem here is in place_block_symbol() and
> > output_object_block().  If DECL_INITIAL is given for an array, then
> > shouldn't we be taking the size from the initializer?
> 
> This means that the size of the array and the size of the initializer don't 
> agree, right?  IMO this should be fixed instead since this could run afoul of 
> various optimizations using array_ref_up_bound for example.

Good to hear.  I wasn't sure whether the sizes were even supposed to
agree.  Assuming Jakub's second patch fixes java for us (testing now),
that just leaves gcc.c-torture/execute/20010924-1.c which fails to
size a3 and a4 properly.  Both of these vars have DECL_SIZE_UNIT of 1.

struct {
  char a3c;
  char a3p[];
} a3 = {
  'o',
  "wx"
};

struct {
  char a4c;
  char a4p[];
} a4 = {
  '9',
  { 'e', 'b' }
};


-- 
Alan Modra
Australia Development Lab, IBM

Reply via email to