jhuber6 added inline comments.
================ Comment at: clang/lib/Driver/Driver.cpp:4218 + // Only add action when needValidation. + if (toolchains::HLSLToolChain::needValidation(Args, *this, + C.getDefaultToolChain())) { ---------------- python3kgae wrote: > jhuber6 wrote: > > This should work, shouldn't it? > > ``` > > const auto &TC = static_cast<const toolchains::HLSLToolChain > > &>(getToolChain()); > > ``` > I'm not sure getToolChain will return a HLSLToolChain. > Is it OK to use dynamic_cast? Well, how is the compilation normally invoked? The `Driver::getToolChain()` function clearly returns an `HLSLToolChain` if the triple is `ShaderModel`. I'm assuming that's the only way to create this, and its set in the compilation. So it should be the ToolChain of the main compilation. This is in contract to an offloading compilation that can have multiple toolchains floating around I'm guessing. And no, `dynamic_cast` doesn't work in LLVM. LLVM RTTI requires implementing a `classof` function, e.g. https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html, which the ToolChains don't use. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141705/new/ https://reviews.llvm.org/D141705 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits