// If we don't know how to parse this attribute, but this is the only
// token in this argument, assume it's meant to be an identifier.
- if (AttrKind == AttributeList::UnknownAttribute) {
+ if (AttrKind == AttributeList::UnknownAttribute ||
+ AttrKind == AttributeList::IgnoredAttribute) {
const Token &Next = NextToken();
IsIdentifierArg = Next.is(tok::r_paren) || Next.is(tok::comma);
}
--- /dev/null
+// RUN: %clang_cc1 -fsyntax-only %s\r
+// Make sure OpenBSD's bounded extension is accepted.\r
+\r
+typedef long ssize_t;\r
+typedef unsigned long size_t;\r
+typedef struct FILE FILE;\r
+\r
+ssize_t read(int, void *, size_t)\r
+ __attribute__((__bounded__(__buffer__,2,3)));\r
+int readlink(const char *, char *, size_t)\r
+ __attribute__((__bounded__(__string__,2,3)));\r
+size_t fread(void *, size_t, size_t, FILE *)\r
+ __attribute__((__bounded__(__size__,1,3,2)));\r
+char *getwd(char *)\r
+ __attribute__((__bounded__(__minbytes__,1,1024)));
\ No newline at end of file