================
@@ -67,15 +68,19 @@ struct Bar {
template <typename U, int num>
constexpr int fail2() const { return 1 / 0; } // expected-warning {{division
by zero}} \
// expected-note {{division by
zero}}
+#ifndef NEW_CONST_INTERP
template <typename ...Args>
constexpr int fail3(Args... args) const { return 1 / 0; } //
expected-warning {{division by zero}} \
// expected-note {{division by
zero}}
+#endif
};
constexpr Bar<int> bar;
static_assert(bar.fail1<int>()); // expected-error {{constant expression}} \
// expected-note {{in call to
'bar.fail1<int>()'}}
static_assert(bar.fail2<int*, 42>()); // expected-error {{constant
expression}} \
// expected-note {{in call to
'bar.fail2<int *, 42>()'}}
+#ifndef NEW_CONST_INTERP
static_assert(bar.fail3(3, 4UL, bar, &bar)); // expected-error {{constant
expression}} \
// expected-note {{in call to
'bar.fail3<int, unsigned long, Bar<int>, const Bar<int> *>(3, 4, {}, &bar)'}}
----------------
yronglin wrote:
Should we also fix this issue in the PR? the dump result of the argument of the
call expr is incorrect.
https://github.com/llvm/llvm-project/pull/102170
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits