Implement support for anonymous structs and unions in C. Both C and
C++ handle anonymous structs/unions in the same way. Addresses several
bugs:
<rdar://problem/6259534>
<rdar://problem/6481130>
<rdar://problem/6483159>
The test case in PR clang/1750 now passes with -fsyntax-only, but
CodeGen for inline assembler still fails.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62112 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index 3ec1764..8d4705a 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -888,9 +888,10 @@
SourceLocation DSStart = Tok.getLocation();
ParseSpecifierQualifierList(DS);
- // If there are no declarators, issue a warning.
+ // If there are no declarators, this is a free-standing declaration
+ // specifier. Let the actions module cope with it.
if (Tok.is(tok::semi)) {
- Diag(DSStart, diag::w_no_declarators);
+ Actions.ParsedFreeStandingDeclSpec(CurScope, DS);
return;
}