probinson created this revision. probinson added a reviewer: rsmith. probinson added a subscriber: cfe-commits.
We have a C test that now gets a warning about a C++1z extension, which seems inappropriate. http://reviews.llvm.org/D22113 Files: lib/Sema/SemaDecl.cpp test/Sema/inline.c Index: test/Sema/inline.c =================================================================== --- test/Sema/inline.c +++ test/Sema/inline.c @@ -49,7 +49,7 @@ #include "inline.c" // Check that we don't allow illegal uses of inline -inline int a; // expected-warning{{inline variables are a C++1z extension}} +inline int a; // expected-error{{'inline' can only appear on functions}} typedef inline int b; // expected-error{{'inline' can only appear on functions}} int d(inline int a); // expected-error{{'inline' can only appear on functions}} Index: lib/Sema/SemaDecl.cpp =================================================================== --- lib/Sema/SemaDecl.cpp +++ lib/Sema/SemaDecl.cpp @@ -6186,6 +6186,9 @@ Diag(D.getDeclSpec().getInlineSpecLoc(), diag::err_inline_declaration_block_scope) << Name << FixItHint::CreateRemoval(D.getDeclSpec().getInlineSpecLoc()); + } else if (!getLangOpts().CPlusPlus) { + Diag(D.getDeclSpec().getInlineSpecLoc(), diag::err_inline_non_function) + << 0; } else { Diag(D.getDeclSpec().getInlineSpecLoc(), getLangOpts().CPlusPlus1z ? diag::warn_cxx14_compat_inline_variable
Index: test/Sema/inline.c =================================================================== --- test/Sema/inline.c +++ test/Sema/inline.c @@ -49,7 +49,7 @@ #include "inline.c" // Check that we don't allow illegal uses of inline -inline int a; // expected-warning{{inline variables are a C++1z extension}} +inline int a; // expected-error{{'inline' can only appear on functions}} typedef inline int b; // expected-error{{'inline' can only appear on functions}} int d(inline int a); // expected-error{{'inline' can only appear on functions}} Index: lib/Sema/SemaDecl.cpp =================================================================== --- lib/Sema/SemaDecl.cpp +++ lib/Sema/SemaDecl.cpp @@ -6186,6 +6186,9 @@ Diag(D.getDeclSpec().getInlineSpecLoc(), diag::err_inline_declaration_block_scope) << Name << FixItHint::CreateRemoval(D.getDeclSpec().getInlineSpecLoc()); + } else if (!getLangOpts().CPlusPlus) { + Diag(D.getDeclSpec().getInlineSpecLoc(), diag::err_inline_non_function) + << 0; } else { Diag(D.getDeclSpec().getInlineSpecLoc(), getLangOpts().CPlusPlus1z ? diag::warn_cxx14_compat_inline_variable
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits