]> granicus.if.org Git - clang/commitdiff
Use the -Wunknown-warning-option group for the "unknown warning group"
authorAlex Lorenz <arphaman@gmail.com>
Fri, 28 Apr 2017 14:45:25 +0000 (14:45 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Fri, 28 Apr 2017 14:45:25 +0000 (14:45 +0000)
diagnostic in #pragma diagnostic

This matches the warning group that's specified for the unknown warning options
that are passed-in as command line arguments.

rdar://29526025

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@301647 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticLexKinds.td
test/Preprocessor/pragma_diagnostic.c

index cf33d5fba3d774e1100b6ad211db999e2550ce40..653be75a766cf3bff8012308e35df02805a4a9af 100644 (file)
@@ -503,7 +503,7 @@ def warn_pragma_diagnostic_invalid_token :
    InGroup<UnknownPragmas>;
 def warn_pragma_diagnostic_unknown_warning :
    ExtWarn<"unknown warning group '%0', ignored">,
-   InGroup<UnknownPragmas>;
+   InGroup<UnknownWarningOption>;
 // - #pragma __debug
 def warn_pragma_debug_unexpected_command : Warning<
   "unexpected debug command '%0'">, InGroup<IgnoredPragmas>;
index 3970dbbc8e2faf8d77735dc9edb0ad6744c01428..63d5907c67d04dd40ef5c85dbed00c5e21493f62 100644 (file)
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-undef %s
+// RUN: %clang_cc1 -fsyntax-only -verify -Wno-undef -Wno-unknown-warning-option -DAVOID_UNKNOWN_WARNING %s
 // rdar://2362963
 
 #if FOO    // ok.
 #pragma GCC diagnostic error "-Wundef" 42  // expected-warning {{unexpected token in pragma diagnostic}}
 #pragma GCC diagnostic error "invalid-name"  // expected-warning {{pragma diagnostic expected option name (e.g. "-Wundef")}}
 
-#pragma GCC diagnostic error "-Winvalid-name"  // expected-warning {{unknown warning group '-Winvalid-name', ignored}}
-
+#pragma GCC diagnostic error "-Winvalid-name"
+#ifndef AVOID_UNKNOWN_WARNING
+// expected-warning@-2 {{unknown warning group '-Winvalid-name', ignored}}
+#endif
 
 // Testing pragma clang diagnostic with -Weverything
 void ppo(){} // First test that we do not diagnose on this.