================ @@ -289,3 +289,13 @@ namespace PR8168 { static void foo() {} // expected-error{{'static' member function 'foo' overrides a virtual function}} }; } + +namespace T13 { + struct A { + virtual const int *f() const; // expected-note{{overridden virtual function is here}} + }; + + struct B : A { + int *f() const override; // expected-error{{virtual function 'f' has a different return type ('int *') than the function it overrides (which has return type 'const int *')}} + }; +} ---------------- ilya-biryukov wrote:
Given that the code has a different treatment of types which are pointers and references, having a variation of `T2` with non-class types seems valuable. (we could probably add it to `T2` directly). Same for qualification in `T6`, given that the rules are special for the class types. https://github.com/llvm/llvm-project/pull/111856 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits