diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c94bf560a4a8e3315d2673f43879ed1ccaccbfad..faa152206b5466d6f86cd7014ecbc39c789bbe5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + PR c++/45112 + * cp/decl.c (duplicate_decls): Merge DECL_USER_ALIGN and DECL_PACKED. + 2010-07-30 Jakub Jelinek <jakub@redhat.com> PR debug/45055 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 3aaa20c0ed3823d778cdbcfead1f7b33b2031744..4e4a27786b8089a09d82a58649384076c3aa2672 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -2113,6 +2113,10 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend) SET_DECL_INIT_PRIORITY (olddecl, DECL_INIT_PRIORITY (newdecl)); DECL_HAS_INIT_PRIORITY_P (olddecl) = 1; } + /* Likewise for DECL_USER_ALIGN and DECL_PACKED. */ + DECL_USER_ALIGN (olddecl) = DECL_USER_ALIGN (newdecl); + if (TREE_CODE (newdecl) == FIELD_DECL) + DECL_PACKED (olddecl) = DECL_PACKED (newdecl); /* The DECL_LANG_SPECIFIC information in OLDDECL will be replaced with that from NEWDECL below. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2fded2a5233b5d712e545924c2e3622b09910e72..132433051e58f24bd75936bdd169d335f7b8b990 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + PR c++/45112 + * testsuite/g++.dg/pr45112.C: New test. + 2010-07-30 Jakub Jelinek <jakub@redhat.com> PR debug/45055 diff --git a/gcc/testsuite/g++.dg/pr45112.C b/gcc/testsuite/g++.dg/pr45112.C new file mode 100644 index 0000000000000000000000000000000000000000..34dd3e1bcd811fba0287c36ef0712a5cdd67ffec --- /dev/null +++ b/gcc/testsuite/g++.dg/pr45112.C @@ -0,0 +1,12 @@ +/* { dg-do compile } */ + +struct JSString +{ + unsigned char mLength; + static JSString unitStringTable[]; +}; + +JSString JSString::unitStringTable[] __attribute__ ((aligned (8))) = { 1 }; + +int bug [__alignof__ (JSString::unitStringTable) >= 8 ? 1 : -1]; +