================ @@ -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)'}} ---------------- tbaederr wrote:
I don't know what the exact problems is, how it's broken or what the current output is, but if the new interpreter can't handle the entire file yet, it's best to copy it to `test/AST/Interp/` and add the current output (provided it doesn't crash). Fixing it to handle the full file can come in a later commit, yes https://github.com/llvm/llvm-project/pull/102170 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits