neerajksingh added a comment.

In https://reviews.llvm.org/D53457#1277315, @hans wrote:

>   One note about flag ordering: the /clang: flags are concatenated to the end 
> of
>   the argument list, so in cases where the last flag wins, the /clang: flags
>   will be chosen regardless of their order relative to other flags on the 
> driver
>   command line.
>
>
> This seems a little unfortunate. I wonder if it would be possible to not have 
> this restriction, i.e. to process these in-line with the rest of the flags?
>
> One way to achieve this would be to change Driver::ParseArgStrings() to 
> handle the "/clang:" arguments. After doing the regular option parsing, it 
> would look for "/clang:" options and substitute them for the underlying 
> option. This has the downside of adding some option-specific logic to 
> ParseArgStrings, but on the other hand it's less intrusive than passing 
> around the IsCLMode bool. Do you think something like this could work?


One difficulty occurs with options that have separated values, like the 
`/clang:-MF /clang:<filename>` case.  In this case, we need to take two /clang: 
arguments and process them next to each other in order to form a single 
coherent argument/value pair. Another option is to allow the user to specify 
the option like `/clang:"-MF <filename>"` and then require that the user 
specify any flags that need a value in a single /clang: argument.  This would 
require some code to split the value string on spaces before passing it on to 
clang argument parsing.

Do you have any preference or better suggestion for the option-with-value case?


https://reviews.llvm.org/D53457



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to