================ @@ -27,3 +27,27 @@ -(void)testCasts:(BaseClass*)base { base = (BaseClass*)base; // no warning } @end + +template <typename T> +class WrappedObject +{ +public: + T get() const { return mMetalObject; } + T mMetalObject = nullptr; +}; + +@protocol MTLCommandEncoder +@end +@protocol MTLRenderCommandEncoder +@end +class CommandEncoder : public WrappedObject<id<MTLCommandEncoder>> { }; + +class RenderCommandEncoder final : public CommandEncoder +{ +private: + // Override CommandEncoder + id<MTLRenderCommandEncoder> get() + { + return static_cast<id<MTLRenderCommandEncoder>>(CommandEncoder::get()); ---------------- t-rasmud wrote:
Hmmm.. This is a reproducer for the crash when `BaseObjCPtrType` is an invalid type class and we just return in that case. https://github.com/llvm/llvm-project/pull/114606 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits