Commit c206a697 by Jason Merrill Committed by Jason Merrill

re PR c++/28558 (Trouble with __attribute__ and non-PODs)

        PR c++/28558
        * cp/decl.c (groktypename): Ignore attributes applied to class type.
        * testsuite/g++.dg/ext/attrib28.C: New test.

From-SVN: r127859
parent 1c445f03
2007-08-27 Jason Merrill <jason@redhat.com>
PR c++/28558
* decl.c (groktypename): Ignore attributes applied to class type.
2007-08-28 Richard Guenther <rguenther@suse.de>
* decl.c (duplicate_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
......
......@@ -3877,7 +3877,13 @@ groktypename (cp_decl_specifier_seq *type_specifiers,
type_specifiers->attributes = NULL_TREE;
type = grokdeclarator (declarator, type_specifiers, TYPENAME, 0, &attrs);
if (attrs)
cplus_decl_attributes (&type, attrs, 0);
{
if (CLASS_TYPE_P (type))
warning (OPT_Wattributes, "ignoring attributes applied to class type "
"outside of definition");
else
cplus_decl_attributes (&type, attrs, 0);
}
return type;
}
......
2007-08-28 Jason Merrill <jason@redhat.com>
PR c++/28558
* g++.dg/ext/attrib28.C: New test.
2007-08-28 Uros Bizjak <ubizjak@gmail.com>
PR target/32661
// PR c++/28558
// { dg-options "" }
struct A
{
A(int) { }
};
int main()
{
A a = (A __attribute__((unused)))0; // { dg-warning "attribute" }
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment