diff options
author | Giovanni Bajo <giovannibajo@gcc.gnu.org> | 2004-10-17 04:39:46 +0000 |
---|---|---|
committer | Giovanni Bajo <giovannibajo@gcc.gnu.org> | 2004-10-17 04:39:46 +0000 |
commit | 9596e0648d707e99db00814dbddbb54225f98bff (patch) | |
tree | eeb98e0397617f97d8f3e25d679968f164569739 | |
parent | 375e2166441f61b7860c74425a668af9766f16c8 (diff) | |
download | gcc-9596e0648d707e99db00814dbddbb54225f98bff.zip gcc-9596e0648d707e99db00814dbddbb54225f98bff.tar.gz gcc-9596e0648d707e99db00814dbddbb54225f98bff.tar.bz2 |
re PR c++/17743 (dependent expressions in attributes)
PR c++/17743
* decl2.c (grokfield): Apply attributes also to TYPE_DECLs.
PR c++/17743
* g++.dg/ext/attrib17.C: New test.
From-SVN: r89164
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/attrib17.C | 19 |
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ebd8705..3e5f743 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-10-17 Giovanni Bajo <giovannibajo@gcc.gnu.org> + + PR c++/17743 + * decl2.c (grokfield): Apply attributes also to TYPE_DECLs. + 2004-10-16 Giovanni Bajo <giovannibajo@gcc.gnu.org> PR c++/10479 diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 6562f28..32ee18a 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -879,6 +879,9 @@ grokfield (const cp_declarator *declarator, if (processing_template_decl) value = push_template_decl (value); + if (attrlist) + cplus_decl_attributes (&value, attrlist, 0); + return value; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d7867af..38f1950 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-10-17 Giovanni Bajo <giovannibajo@gcc.gnu.org> + + PR c++/17743 + * g++.dg/ext/attrib17.C: New test. + 2004-10-16 Eric Botcazou <ebotcazou@libertysurf.fr> * gcc.dg/bf-spl1.c: Use 'float' as the base type for FP types. diff --git a/gcc/testsuite/g++.dg/ext/attrib17.C b/gcc/testsuite/g++.dg/ext/attrib17.C new file mode 100644 index 0000000..43cf264 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/attrib17.C @@ -0,0 +1,19 @@ +// { dg-do compile } +// Origin: Benjamin Kosnik <bkoz at gcc dot gnu dot org> +// PR c++/17743: Attributes applied to typedefs. + +struct A { + typedef char layout_type[sizeof(double)] + __attribute__((aligned(__alignof__(double)))); + layout_type data; +}; + +struct B { + typedef char layout_type[sizeof(double)]; + layout_type data __attribute__((aligned(__alignof__(double)))); +}; + +template<bool> struct StaticAssert; +template<> struct StaticAssert<true> {}; + +StaticAssert<__alignof__(A) == __alignof__(B)> a1; |