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

Reply via email to