cor3ntin added inline comments.
================
Comment at: clang/test/SemaCXX/cxx2a-consteval.cpp:612
+static_assert(is_same<long, T>::value);
+
+} // namespace unevaluated
----------------
aaron.ballman wrote:
> Here's an interesting test case:
> ```
> #include <typeinfo>
>
> struct S {
> virtual void f();
> };
>
> struct D : S {
> void f() override;
> };
>
> consteval S *get_s() { return nullptr; }
>
> void func() {
> (void)typeid(*get_s());
> }
> ```
> `typeid` still needs to evaluate its operand (due to the polymorphic return
> type of `*get_s()`), and so you should get a diagnostic about evaluating the
> side effects by calling `get_s()`. I think this then runs into
> https://eel.is/c++draft/expr.const#13.sentence-3 and we should diagnose?
Not sure!
Also, in the context of this pr, the question is also whether
`decltype(typeid(*get_s()))` should be ill-formed I think
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106302/new/
https://reviews.llvm.org/D106302
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits