diff --git a/clang/Driver/clang.cpp b/clang/Driver/clang.cpp index 8b3c2f9cf003..2f47e5199ca2 100644 --- a/clang/Driver/clang.cpp +++ b/clang/Driver/clang.cpp @@ -440,6 +440,9 @@ static void InitializeDiagnostics(Diagnostic &Diags) { diag::MAP_IGNORE); if (!WarnUndefMacros) Diags.setDiagnosticMapping(diag::warn_pp_undef_identifier,diag::MAP_IGNORE); + + if (MSExtensions) // MS allows unnamed struct/union fields. + Diags.setDiagnosticMapping(diag::w_no_declarators, diag::MAP_IGNORE); } //===----------------------------------------------------------------------===// diff --git a/clang/Parse/ParseDecl.cpp b/clang/Parse/ParseDecl.cpp index 454a05dc448e..ea12a7c120c0 100644 --- a/clang/Parse/ParseDecl.cpp +++ b/clang/Parse/ParseDecl.cpp @@ -671,8 +671,7 @@ void Parser::ParseStructDeclaration(DeclTy *TagDecl, // If there are no declarators, issue a warning. if (Tok.is(tok::semi)) { - if (!getLang().Microsoft) // MS allows unnamed struct/union fields. - Diag(SpecQualLoc, diag::w_no_declarators); + Diag(SpecQualLoc, diag::w_no_declarators); return; }