<div dir="ltr">I think we can get rid of CCC_ADD_ARGS, it is less useful than the other and just predated it.<div><br></div><div> - Daniel</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 23, 2013 at 9:16 AM, Chad Rosier <span dir="ltr"><<a href="mailto:chad.rosier@gmail.com" target="_blank">chad.rosier@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Adding cfe-commits..<div class="HOEnZb"><div class="h5"><br><br><div class="gmail_quote">On Tue, Jul 23, 2013 at 12:15 PM, Chad Rosier <span dir="ltr"><<a href="mailto:chad.rosier@gmail.com" target="_blank">chad.rosier@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Rafael,<br>IIRC, the QA_OVERRIDE_GCC3_OPTIONS and CCC_ADD_ARGS are used in various 
Apple environments and there is no real consensus.  Since there's no real overhead here I propose we just leave it as is.<br><br>Daniel may have some additional insight, so I've cc'ed him.<br><br>Daniel?<span><font color="#888888"><br>

<br>
 Chad</font></span><div><div><br><br><div class="gmail_quote">
On Tue, Jul 23, 2013 at 11:56 AM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



BTW, are both environment variables really needed?<br>
<br>
On 21 February 2013 13:56, Chad Rosier <<a href="mailto:mcrosier@apple.com" target="_blank">mcrosier@apple.com</a>> wrote:<br>
> Author: mcrosier<br>
> Date: Thu Feb 21 12:56:55 2013<br>
> New Revision: 175779<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=175779&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=175779&view=rev</a><br>
> Log:<br>
> [driver] Handle the processing of the QA_OVERRIDE_GCC3_OPTIONS and CCC_ADD_ARGS<br>
> before the DiagnosticsEngine is instantiated.  Otherwise, warning options are<br>
> not handled correctly.<br>
> rdar://13254743<br>
><br>
> Modified:<br>
>     cfe/trunk/test/Driver/qa_override.c<br>
>     cfe/trunk/tools/driver/driver.cpp<br>
><br>
> Modified: cfe/trunk/test/Driver/qa_override.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/qa_override.c?rev=175779&r1=175778&r2=175779&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/qa_override.c?rev=175779&r1=175778&r2=175779&view=diff</a><br>




> ==============================================================================<br>
> --- cfe/trunk/test/Driver/qa_override.c (original)<br>
> +++ cfe/trunk/test/Driver/qa_override.c Thu Feb 21 12:56:55 2013<br>
> @@ -1,6 +1,13 @@<br>
>  // RUN: env QA_OVERRIDE_GCC3_OPTIONS="#+-Os +-Oz +-O +-O3 +-Oignore +a +b +c xb Xa Omagic ^-ccc-print-options  " %clang x -O2 b -O3 2>&1 | FileCheck %s<br>
> +// RUN: env QA_OVERRIDE_GCC3_OPTIONS="x-Werror +-mfoo" %clang -Werror %s -c 2>&1 | FileCheck %s -check-prefix=RM-WERROR<br>
> +<br>
>  // CHECK-NOT: ###<br>
>  // CHECK: Option 0 - Name: "-ccc-print-options", Values: {}<br>
>  // CHECK-NEXT: Option 1 - Name: "<input>", Values: {"x"}<br>
>  // CHECK-NEXT: Option 2 - Name: "-O", Values: {"ignore"}<br>
>  // CHECK-NEXT: Option 3 - Name: "-O", Values: {"magic"}<br>
> +<br>
> +// RM-WERROR: ### QA_OVERRIDE_GCC3_OPTIONS: x-Werror +-mfoo<br>
> +// RM-WERROR-NEXT: ### Deleting argument -Werror<br>
> +// RM-WERROR-NEXT: ### Adding argument -mfoo at end<br>
> +// RM-WERROR-NEXT: clang: warning: argument unused during compilation: '-mfoo'<br>
><br>
> Modified: cfe/trunk/tools/driver/driver.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/driver.cpp?rev=175779&r1=175778&r2=175779&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/driver.cpp?rev=175779&r1=175778&r2=175779&view=diff</a><br>




> ==============================================================================<br>
> --- cfe/trunk/tools/driver/driver.cpp (original)<br>
> +++ cfe/trunk/tools/driver/driver.cpp Thu Feb 21 12:56:55 2013<br>
> @@ -373,6 +373,32 @@ int main(int argc_, const char **argv_)<br>
>      }<br>
>    }<br>
><br>
> +  // Handle QA_OVERRIDE_GCC3_OPTIONS and CCC_ADD_ARGS, used for editing a<br>
> +  // command line behind the scenes.<br>
> +  if (const char *OverrideStr = ::getenv("QA_OVERRIDE_GCC3_OPTIONS")) {<br>
> +    // FIXME: Driver shouldn't take extra initial argument.<br>
> +    ApplyQAOverride(argv, OverrideStr, SavedStrings);<br>
> +  } else if (const char *Cur = ::getenv("CCC_ADD_ARGS")) {<br>
> +    // FIXME: Driver shouldn't take extra initial argument.<br>
> +    std::vector<const char*> ExtraArgs;<br>
> +<br>
> +    for (;;) {<br>
> +      const char *Next = strchr(Cur, ',');<br>
> +<br>
> +      if (Next) {<br>
> +        ExtraArgs.push_back(SaveStringInSet(SavedStrings,<br>
> +                                            std::string(Cur, Next)));<br>
> +        Cur = Next + 1;<br>
> +      } else {<br>
> +        if (*Cur != '\0')<br>
> +          ExtraArgs.push_back(SaveStringInSet(SavedStrings, Cur));<br>
> +        break;<br>
> +      }<br>
> +    }<br>
> +<br>
> +    argv.insert(&argv[1], ExtraArgs.begin(), ExtraArgs.end());<br>
> +  }<br>
> +<br>
>    llvm::sys::Path Path = GetExecutablePath(argv[0], CanonicalPrefixes);<br>
><br>
>    IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions;<br>
> @@ -438,32 +464,6 @@ int main(int argc_, const char **argv_)<br>
>    if (TheDriver.CCLogDiagnostics)<br>
>      TheDriver.CCLogDiagnosticsFilename = ::getenv("CC_LOG_DIAGNOSTICS_FILE");<br>
><br>
> -  // Handle QA_OVERRIDE_GCC3_OPTIONS and CCC_ADD_ARGS, used for editing a<br>
> -  // command line behind the scenes.<br>
> -  if (const char *OverrideStr = ::getenv("QA_OVERRIDE_GCC3_OPTIONS")) {<br>
> -    // FIXME: Driver shouldn't take extra initial argument.<br>
> -    ApplyQAOverride(argv, OverrideStr, SavedStrings);<br>
> -  } else if (const char *Cur = ::getenv("CCC_ADD_ARGS")) {<br>
> -    // FIXME: Driver shouldn't take extra initial argument.<br>
> -    std::vector<const char*> ExtraArgs;<br>
> -<br>
> -    for (;;) {<br>
> -      const char *Next = strchr(Cur, ',');<br>
> -<br>
> -      if (Next) {<br>
> -        ExtraArgs.push_back(SaveStringInSet(SavedStrings,<br>
> -                                            std::string(Cur, Next)));<br>
> -        Cur = Next + 1;<br>
> -      } else {<br>
> -        if (*Cur != '\0')<br>
> -          ExtraArgs.push_back(SaveStringInSet(SavedStrings, Cur));<br>
> -        break;<br>
> -      }<br>
> -    }<br>
> -<br>
> -    argv.insert(&argv[1], ExtraArgs.begin(), ExtraArgs.end());<br>
> -  }<br>
> -<br>
>    OwningPtr<Compilation> C(TheDriver.BuildCompilation(argv));<br>
>    int Res = 0;<br>
>    SmallVector<std::pair<int, const Command *>, 4> FailingCommands;<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br></div>