From: John McCall Date: Wed, 13 Jun 2012 19:48:01 +0000 (+0000) Subject: Provide a -no-pedantic to cancel out -pedantic. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dc9327a8da640ecf7b15c5d5b726cd67a0e63284;p=clang Provide a -no-pedantic to cancel out -pedantic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158416 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 48f2b1a29c..73f5fbb242 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -831,6 +831,7 @@ def no_canonical_prefixes : Flag<"-no-canonical-prefixes">, Flags<[HelpHidden]>, def no_cpp_precomp : Flag<"-no-cpp-precomp">, Group; def no_integrated_as : Flag<"-no-integrated-as">, Flags<[DriverOption]>; def no_integrated_cpp : Flag<"-no-integrated-cpp">, Flags<[DriverOption]>; +def no_pedantic : Flag<"-no-pedantic">, Group; def no__dead__strip__inits__and__terms : Flag<"-no_dead_strip_inits_and_terms">; def nobuiltininc : Flag<"-nobuiltininc">, Flags<[CC1Option]>, HelpText<"Disable builtin #include directories">; @@ -1033,6 +1034,7 @@ def _machine_EQ : Joined<"--machine=">, Alias; def _machine : Separate<"--machine">, Alias; def _no_integrated_cpp : Flag<"--no-integrated-cpp">, Alias; def _no_line_commands : Flag<"--no-line-commands">, Alias

; +def _no_pedantic : Flag<"--no-pedantic">, Alias; def _no_standard_includes : Flag<"--no-standard-includes">, Alias; def _no_standard_libraries : Flag<"--no-standard-libraries">, Alias; def _no_undefined : Flag<"--no-undefined">, Flags<[LinkerInput]>; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index e84c72fe1c..dec9dbadca 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2034,7 +2034,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, } Args.AddAllArgs(CmdArgs, options::OPT_W_Group); - Args.AddLastArg(CmdArgs, options::OPT_pedantic); + if (Args.hasFlag(options::OPT_pedantic, options::OPT_no_pedantic, false)) + CmdArgs.push_back("-pedantic"); Args.AddLastArg(CmdArgs, options::OPT_pedantic_errors); Args.AddLastArg(CmdArgs, options::OPT_w); diff --git a/test/Driver/warning-options.cpp b/test/Driver/warning-options.cpp index ce434ab006..02b3e1c225 100644 --- a/test/Driver/warning-options.cpp +++ b/test/Driver/warning-options.cpp @@ -8,3 +8,8 @@ // CHECK: unknown warning option '-Wmonkey' // CHECK: unknown warning option '-Wno-monkey' // CHECK: unknown warning option '-Wno-unused-command-line-arguments'; did you mean '-Wno-unused-command-line-argument'? + +// RUN: %clang -### -pedantic -no-pedantic %s 2>&1 | FileCheck -check-prefix=NO_PEDANTIC %s +// NO_PEDANTIC-NOT: -pedantic +// RUN: %clang -### -pedantic -pedantic -no-pedantic -pedantic %s 2>&1 | FileCheck -check-prefix=PEDANTIC %s +// PEDANTIC: -pedantic