kadircet added a comment.

BTW, I am not sure when the new DXC driver mode was introduced but ATM it isn't 
properly handled by clang-tooling APIs, especially clangd. As the logic there 
wasn't updated accordingly, and it also resulted in regressions for clang-cl 
mode. I've sent out https://reviews.llvm.org/D133962 to remedy the regressions 
at least (which needs to be cherry-picked into next minor release I am afraid).
This is actually probably causing bigger troubles at the moment as a file that 
starts with `/I` will actually be treated as an include search path, rather 
than the input of the compilation, in places where CLDXC flags aren't excluded.

It would be nice to monitor new driver mode introductions to make sure they're 
not making the logic more complicated, as parsing needs to happen in other 
places as well (clangd, lld, lldb and a bunch of other tools parse compile 
flags themselves) and this logic gets duplicated into those places because 
driver doesn't have a public interface that exposes this (mostly because 
`getIncludeExcludeOptionFlagMasks` is complicated, and it's more complicated 
after this new driver mode).
Not supporting new driver modes in those tools, unless explicitly implemented, 
is probably OK, but it's really unfortunate that they'll break silently (due to 
changes similar to this). Because even if we were to test for all of the 
existing flags in those tools, we can't really test for possible flags that 
might be added in the future, which might all of a sudden change a filename to 
a command line option as seen here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128462/new/

https://reviews.llvm.org/D128462

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

Reply via email to