filcab created this revision. filcab added reviewers: echristo, chandlerc. filcab added a subscriber: cfe-commits.
This patch is basically a request for comments. Since we can enable warnings after that -w, I don't think the patch is 100% correct. The problem that triggered this is because we have some amount of tests that expect 0 warnings (including unit tests for -w), but -w ends up not fully silencing everything. http://reviews.llvm.org/D11322 Files: lib/Driver/Driver.cpp test/Index/warning-flags.c Index: test/Index/warning-flags.c =================================================================== --- test/Index/warning-flags.c +++ test/Index/warning-flags.c @@ -7,6 +7,7 @@ // RUN: c-index-test -test-load-source-reparse 5 all -Wno-return-type %s 2>&1|FileCheck -check-prefix=CHECK-SECOND-WARNING %s // RUN: c-index-test -test-load-source all -w %s 2>&1|not grep warning: // RUN: c-index-test -test-load-source-reparse 5 all -w %s 2>&1|not grep warning: +// RUN: c-index-test -test-load-source all -w -O4 %s 2>&1|not grep warning: // CHECK-BOTH-WARNINGS: warning: control reaches end of non-void function // CHECK-BOTH-WARNINGS: warning: incompatible pointer types returning 'float *' from a function with result type 'int *' Index: lib/Driver/Driver.cpp =================================================================== --- lib/Driver/Driver.cpp +++ lib/Driver/Driver.cpp @@ -387,6 +387,9 @@ InputArgList Args = ParseArgStrings(ArgList.slice(1)); + // Silence driver warnings if requested + Diags.setIgnoreAllWarnings(Args.hasArg(options::OPT_w)); + // -no-canonical-prefixes is used very early in main. Args.ClaimAllArgs(options::OPT_no_canonical_prefixes);
Index: test/Index/warning-flags.c =================================================================== --- test/Index/warning-flags.c +++ test/Index/warning-flags.c @@ -7,6 +7,7 @@ // RUN: c-index-test -test-load-source-reparse 5 all -Wno-return-type %s 2>&1|FileCheck -check-prefix=CHECK-SECOND-WARNING %s // RUN: c-index-test -test-load-source all -w %s 2>&1|not grep warning: // RUN: c-index-test -test-load-source-reparse 5 all -w %s 2>&1|not grep warning: +// RUN: c-index-test -test-load-source all -w -O4 %s 2>&1|not grep warning: // CHECK-BOTH-WARNINGS: warning: control reaches end of non-void function // CHECK-BOTH-WARNINGS: warning: incompatible pointer types returning 'float *' from a function with result type 'int *' Index: lib/Driver/Driver.cpp =================================================================== --- lib/Driver/Driver.cpp +++ lib/Driver/Driver.cpp @@ -387,6 +387,9 @@ InputArgList Args = ParseArgStrings(ArgList.slice(1)); + // Silence driver warnings if requested + Diags.setIgnoreAllWarnings(Args.hasArg(options::OPT_w)); + // -no-canonical-prefixes is used very early in main. Args.ClaimAllArgs(options::OPT_no_canonical_prefixes);
_______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits