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;
   }