[clang] [Clang][Interp] Fix display of syntactically-invalid note for member function calls (PR #102170)
Timm Baeder via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 8 07:31:20 PDT 2024
================
@@ -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
More information about the cfe-commits
mailing list