re PR c++/66216 (Defaulted Operators and constructors not working with aligned attribute)

PR c++/66216
	* class.c (finish_struct): Call fixup_attribute_variants.

From-SVN: r225087
This commit is contained in:
Jason Merrill 2015-06-26 17:31:13 -04:00 committed by Jason Merrill
parent 9579e906e2
commit e0ff153d39
3 changed files with 19 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2015-06-26 Jason Merrill <jason@redhat.com>
PR c++/66216
* class.c (finish_struct): Call fixup_attribute_variants.
PR c++/66684
* typeck2.c (merge_exception_specifiers): Allow different
noexcept-specifiers if we've had errors.

View File

@ -6820,6 +6820,7 @@ finish_struct (tree t, tree attributes)
unreverse_member_declarations (t);
cplus_decl_attributes (&t, attributes, (int) ATTR_FLAG_TYPE_IN_PLACE);
fixup_attribute_variants (t);
/* Nadger the current location so that diagnostics point to the start of
the struct, not the end. */

View File

@ -0,0 +1,15 @@
// PR c++/66216
// { dg-do compile { target c++11 } }
// { dg-options "" }
class CMymy
{
unsigned char _a;
unsigned char _b;
public:
constexpr CMymy() : _a(), _b() {}
constexpr CMymy(const CMymy &) = default;
CMymy &operator=(const CMymy &) = default;
} __attribute__((aligned(2)));