re PR c++/65690 (typedef alignment lost since r219705)
PR c++/65690 * tree.c (build_cplus_array_type): Layout type before variants are set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main variant. * c-c++-common/attr-aligned-1.c: New test. From-SVN: r221952
This commit is contained in:
parent
fb728653b6
commit
00da5e285d
|
@ -1,3 +1,10 @@
|
|||
2015-04-09 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/65690
|
||||
* tree.c (build_cplus_array_type): Layout type before variants are
|
||||
set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
|
||||
variant.
|
||||
|
||||
2015-04-03 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/64085
|
||||
|
|
|
@ -880,12 +880,19 @@ build_cplus_array_type (tree elt_type, tree index_type)
|
|||
{
|
||||
t = build_min_array_type (elt_type, index_type);
|
||||
set_array_type_canon (t, elt_type, index_type);
|
||||
if (!dependent)
|
||||
{
|
||||
layout_type (t);
|
||||
/* Make sure sizes are shared with the main variant.
|
||||
layout_type can't be called after setting TYPE_NEXT_VARIANT,
|
||||
as it will overwrite alignment etc. of all variants. */
|
||||
TYPE_SIZE (t) = TYPE_SIZE (m);
|
||||
TYPE_SIZE_UNIT (t) = TYPE_SIZE_UNIT (m);
|
||||
}
|
||||
|
||||
TYPE_MAIN_VARIANT (t) = m;
|
||||
TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (m);
|
||||
TYPE_NEXT_VARIANT (m) = t;
|
||||
if (!dependent)
|
||||
layout_type (t);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-04-09 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/65690
|
||||
* c-c++-common/attr-aligned-1.c: New test.
|
||||
|
||||
2015-04-09 Ilya Enkovich <ilya.enkovich@intel.com>
|
||||
|
||||
* gcc.target/i386/mpx/memmove-zero-length.c: New.
|
||||
|
|
Loading…
Reference in New Issue