[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