[Patch] Turn Driver::CCCIsCXX and CCCIsCPP into an enum, add -cxx-mode= option

Hans Wennborg hans at chromium.org
Mon Jul 15 18:28:43 PDT 2013


On Mon, Jul 15, 2013 at 6:11 PM, David Blaikie <dblaikie at gmail.com> wrote:
> (not claiming ownership of this CR, but a few drive-by comments)
>
> You could consider using a StringSwitch in Driver::ParseCCCMode.

Done. It's a little annoying that I need an invalid value for the
default case, but on the other hand the StringSwitch is nice.

> Is there any reason you need to remove support for "clangxx" (that's
> causing you to need to update those hexagon tests?)?

I'm not, I'm switching those hexagon tests over to use clangxx instead
of -ccc-cxx which I'm removing.

> Would you mind updating immediate-options.c to use FileCheck rather
> than multiple invocations with grep?

Sure. I'd like to do that in a separate patch, though.

Thanks for the comments! New patch attached.

 - Hans


> On Mon, Jul 15, 2013 at 4:17 PM, Hans Wennborg <hans at chromium.org> wrote:
>> Hi all,
>>
>> This patch is a follow-up to the discussion in Reid's cl.exe
>> compatible driver proposal [1].
>>
>> Clang currently looks at argv[0] to switch between running in
>> gcc/g++/cpp mode. This mode is represented in Driver by CCCIsCXX and
>> CCCIsCPP. Since there is no overlap between the three modes, I have
>> turned those two variables into an enum instead. The plan is to later
>> extend this enum with a "cl.exe mode".
>>
>> The patch also adds a new command line option, -ccc-mode, to set the
>> mode. This replaces the current -ccc-cxx option (and also makes it
>> easier to test the cpp mode). This option is special: because the mode
>> can affect option parsing (the cl.exe mode will add new options), the
>> -ccc-mode needs to be parsed early.
>>
>> Please take a look!
>>
>> Thanks,
>> Hans
>>
>> [1]. http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-June/030439.html
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cccmode-enum-2.patch
Type: application/octet-stream
Size: 25146 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130715/dc3d2f38/attachment.obj>


More information about the cfe-commits mailing list