hans added a comment.

In https://reviews.llvm.org/D53457#1277950, @neerajksingh wrote:

> 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?


The `-Xclang` option has the same issue, and I think `/clang:` should work 
similarly, i.e. `/clang:-MF /clang:<filename>`. It's not pretty, but at least 
it's consistent. Yes, that means processing consecutive `/Xclang:` options 
together, but hopefully that's doable.


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