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

Hans Wennborg hans at chromium.org
Tue Jul 16 11:32:01 PDT 2013


On Tue, Jul 16, 2013 at 10:54 AM, David Blaikie <dblaikie at gmail.com> wrote:
> On Mon, Jul 15, 2013 at 6:28 PM, Hans Wennborg <hans at chromium.org> wrote:
>> 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.
>
> Fair enough - not a strong opinion given the drawback, so whichever
> you prefer. (including Reid's 3rd variation)

I think Reid's variation sounds good.

>>> 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.
>
> Ah, right, misread. Alternatively you could migrate to the
> --driver-flavor (just checking my understanding)? I suppose your
> change makes (at least as much) sense, then.

Right, --driver-flavor=g++ would work for those tests, but using
%clangxx seemed nicer and more common among the other tests.

>>> 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.
>
> Sure thing.

FileCheckized in r186438.

Thanks,
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



More information about the cfe-commits mailing list