re PR c++/46803 (libstdc++ build errors on invalid OpenBSD system header attributes)

PR c++/46803
	* c-common.c (attribute_takes_identifier_p): Assume that an
	unknown attribute takes an identifier.

From-SVN: r170885
This commit is contained in:
Jason Merrill 2011-03-11 16:36:02 -05:00 committed by Jason Merrill
parent 6a4e2bd556
commit 1b9b91a68b
4 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2011-03-11 Jason Merrill <jason@redhat.com>
PR c++/46803
* c-common.c (attribute_takes_identifier_p): Assume that an
unknown attribute takes an identifier.
2011-03-07 Nathan Froyd <froydnj@codesourcery.com>
PR c/47786

View File

@ -5665,9 +5665,14 @@ c_init_attributes (void)
bool
attribute_takes_identifier_p (const_tree attr_id)
{
if (is_attribute_p ("mode", attr_id)
|| is_attribute_p ("format", attr_id)
|| is_attribute_p ("cleanup", attr_id))
struct attribute_spec *spec = lookup_attribute_spec (attr_id);
if (spec == NULL)
/* Unknown attribute that we'll end up ignoring, return true so we
don't complain about an identifier argument. */
return true;
else if (!strcmp ("mode", spec->name)
|| !strcmp ("format", spec->name)
|| !strcmp ("cleanup", spec->name))
return true;
else
return targetm.attribute_takes_identifier_p (attr_id);

View File

@ -1,5 +1,7 @@
2011-03-11 Jason Merrill <jason@redhat.com>
* g++.dg/ext/attrib40.C: New.
* g++.dg/cpp0x/regress/array1.C: New.
2011-03-11 Richard Guenther <rguenther@suse.de>

View File

@ -0,0 +1,4 @@
// PR c++/46803
int strftime(char *, int, const char *, const struct tm *)
__attribute__ ((__bounded__(__string__,1,2))); // { dg-warning "ignored" }