r210503 - Make '-Werror=frame-larger-than=' and associated diagnostic pragmas GCC-compatible

Alp Toker alp at nuanti.com
Mon Jun 9 16:59:39 PDT 2014


Author: alp
Date: Mon Jun  9 18:59:38 2014
New Revision: 210503

URL: http://llvm.org/viewvc/llvm-project?rev=210503&view=rev
Log:
Make '-Werror=frame-larger-than=' and associated diagnostic pragmas GCC-compatible

It turns out the trailing '=' really is part of the option name spelling and
treating it as such gets us compatible with GCC's -Werror= and pragmas.

(GCC doesn't appear to support any -Wno- form for this diagnostic but we do.)

Modified:
    cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td
    cfe/trunk/include/clang/Basic/DiagnosticGroups.td
    cfe/trunk/test/Frontend/backend-diagnostic.c
    cfe/trunk/test/Misc/backend-stack-frame-diagnostics.cpp

Modified: cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td?rev=210503&r1=210502&r2=210503&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td Mon Jun  9 18:59:38 2014
@@ -23,8 +23,8 @@ def err_fe_cannot_link_module : Error<"c
   DefaultFatal;
 
 def warn_fe_frame_larger_than : Warning<"stack frame size of %0 bytes in %q1">,
-    CatBackend, InGroup<BackendFrameLargerThan>;
-def warn_fe_backend_frame_larger_than: Warning<"%0">, CatBackend, InGroup<BackendFrameLargerThan>;
+    CatBackend, InGroup<BackendFrameLargerThanEQ>;
+def warn_fe_backend_frame_larger_than: Warning<"%0">, CatBackend, InGroup<BackendFrameLargerThanEQ>;
 def err_fe_backend_frame_larger_than: Error<"%0">, CatBackend;
 def note_fe_backend_frame_larger_than: Note<"%0">, CatBackend;
 

Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=210503&r1=210502&r2=210503&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Mon Jun  9 18:59:38 2014
@@ -686,7 +686,7 @@ def OpenMPLoopForm : DiagGroup<"openmp-l
 
 // Backend warnings.
 def BackendInlineAsm : DiagGroup<"inline-asm">;
-def BackendFrameLargerThan : DiagGroup<"frame-larger-than">;
+def BackendFrameLargerThanEQ : DiagGroup<"frame-larger-than=">;
 def BackendPlugin : DiagGroup<"backend-plugin">;
 def RemarkBackendPlugin : DiagGroup<"remark-backend-plugin">;
 def BackendOptimizationRemark : DiagGroup<"pass">;

Modified: cfe/trunk/test/Frontend/backend-diagnostic.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/backend-diagnostic.c?rev=210503&r1=210502&r2=210503&view=diff
==============================================================================
--- cfe/trunk/test/Frontend/backend-diagnostic.c (original)
+++ cfe/trunk/test/Frontend/backend-diagnostic.c Mon Jun  9 18:59:38 2014
@@ -6,9 +6,9 @@
 //
 // RUN: not %clang_cc1 %s -mllvm -warn-stack-size=0 -no-integrated-as -S -o - -triple=i386-apple-darwin 2> %t.err
 // RUN: FileCheck < %t.err %s --check-prefix=REGULAR --check-prefix=ASM
-// RUN: not %clang_cc1 %s -mllvm -warn-stack-size=0 -no-integrated-as -S -o - -triple=i386-apple-darwin -Werror=frame-larger-than 2> %t.err
+// RUN: not %clang_cc1 %s -mllvm -warn-stack-size=0 -no-integrated-as -S -o - -triple=i386-apple-darwin -Werror=frame-larger-than= 2> %t.err
 // RUN: FileCheck < %t.err %s --check-prefix=PROMOTE --check-prefix=ASM
-// RUN: not %clang_cc1 %s -mllvm -warn-stack-size=0 -no-integrated-as -S -o - -triple=i386-apple-darwin -Wno-frame-larger-than 2> %t.err
+// RUN: not %clang_cc1 %s -mllvm -warn-stack-size=0 -no-integrated-as -S -o - -triple=i386-apple-darwin -Wno-frame-larger-than= 2> %t.err
 // RUN: FileCheck < %t.err %s --check-prefix=IGNORE --check-prefix=ASM
 //
 // RUN: %clang_cc1 %s -S -o - -triple=i386-apple-darwin -verify -no-integrated-as

Modified: cfe/trunk/test/Misc/backend-stack-frame-diagnostics.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/backend-stack-frame-diagnostics.cpp?rev=210503&r1=210502&r2=210503&view=diff
==============================================================================
--- cfe/trunk/test/Misc/backend-stack-frame-diagnostics.cpp (original)
+++ cfe/trunk/test/Misc/backend-stack-frame-diagnostics.cpp Mon Jun  9 18:59:38 2014
@@ -22,6 +22,16 @@ void frameSizeWarning();
 
 void frameSizeWarning(int) {}
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wframe-larger-than="
+// expected-warning at +1 {{unknown warning group '-Wframe-larger-than'}}
+#pragma GCC diagnostic ignored "-Wframe-larger-than"
+void frameSizeWarningIgnored() {
+  char buffer[80];
+  doIt(buffer);
+}
+#pragma GCC diagnostic pop
+
 void frameSizeLocalClassWarning() {
   struct S {
     S() { // expected-warning-re {{stack frame size of {{[0-9]+}} bytes in function 'frameSizeLocalClassWarning()::S::S'}}





More information about the cfe-commits mailing list