diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2010-07-30 15:49:34 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2010-07-30 15:49:34 +0000 |
commit | 88d787e7a0cd330eaadee3fb19ff33a62162f53c (patch) | |
tree | 3a02df7b6e574a398619d061c922c0378df790ec | |
parent | f0fc0803eacde9850a7ff4a12d2f4ad29f1bcb2c (diff) | |
download | gcc-88d787e7a0cd330eaadee3fb19ff33a62162f53c.zip gcc-88d787e7a0cd330eaadee3fb19ff33a62162f53c.tar.gz gcc-88d787e7a0cd330eaadee3fb19ff33a62162f53c.tar.bz2 |
re PR c++/45112 (Aligned attribute on static class member definition ignored)
gcc/
PR c++/45112
* cp/decl.c (duplicate_decls): Merge DECL_USER_ALIGN and DECL_PACKED.
gcc/testsuite/
PR c++/45112
* testsuite/g++.dg/pr45112.C: New test.
From-SVN: r162716
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pr45112.C | 12 |
4 files changed, 26 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c94bf56..faa1522 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 3aaa20c..4e4a277 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 2fded2a..1324330 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 0000000..34dd3e1 --- /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]; + |