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

Reply via email to