[clang] [Clang] enhance error recovery with RecoveryExpr for trailing commas in call arguments (PR #114684)

Oleksandr T. via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 20 08:22:41 PST 2024


================
@@ -32,6 +32,26 @@ void test_invalid_call(int s) {
   int var = some_func(undef1);
 }
 
+int some_func2(int a, int b);
+void test_invalid_call_2() {
+  // CHECK:   `-RecoveryExpr {{.*}} 'int' contains-errors
+  // CHECK-NEXT: |-UnresolvedLookupExpr {{.*}} '<overloaded function type>' lvalue (ADL) = 'some_func2'
+  // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 1
+  some_func2(1, );
+}
+
+void test_invalid_call_3() {
+  // CHECK:   `-RecoveryExpr {{.*}} 'int' contains-errors
+  // CHECK-NEXT: -UnresolvedLookupExpr {{.*}} '<overloaded function type>' lvalue (ADL) = 'some_func2'
+  some_func2(,);
+}
+
+void test_invalid_call_4() {
+  // CHECK:   `-RecoveryExpr {{.*}} 'int' contains-errors
+  // CHECK-NEXT: -UnresolvedLookupExpr {{.*}} '<overloaded function type>' lvalue (ADL) = 'some_func2'
+  some_func2(,,);
----------------
a-tarasyuk wrote:

I'll look into this case, however, I'm not sure if it can be resolved since all previous tests rely on training commas to proceed with recovery expression. Perhaps the approach should be adjusted to track missing arguments instead...

https://github.com/llvm/llvm-project/pull/114684


More information about the cfe-commits mailing list