From 2c2dc7c392a3f28d4dbec3018e3137d5d4f8c6c8 Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Tue, 27 Oct 2020 09:42:19 +0100 Subject: [PATCH] [clang][RecoveryExpr] Add tests for ObjectiveC. to demonstrate it works for some cases. Differential Revision: https://reviews.llvm.org/D90140 --- clang/test/AST/ast-dump-recovery.m | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 clang/test/AST/ast-dump-recovery.m diff --git a/clang/test/AST/ast-dump-recovery.m b/clang/test/AST/ast-dump-recovery.m new file mode 100644 index 0000000..5ca866a --- /dev/null +++ b/clang/test/AST/ast-dump-recovery.m @@ -0,0 +1,18 @@ +// RUN: not %clang_cc1 -triple x86_64-unknown-unknown -frecovery-ast -frecovery-ast-type -ast-dump %s | FileCheck -strict-whitespace %s + +@interface Foo +- (void)method:(int)n; +@end + +void k(Foo *foo) { + // CHECK: ObjCMessageExpr {{.*}} 'void' contains-errors + // CHECK-CHECK: |-ImplicitCastExpr {{.*}} 'Foo *' + // CHECK-CHECK: | `-DeclRefExpr {{.*}} 'foo' + // CHECK-CHECK: `-RecoveryExpr {{.*}} + [foo method:undef]; + + // CHECK: ImplicitCastExpr {{.*}} '' contains-errors + // CHECK-NEXT: `-RecoveryExpr {{.*}} '' contains-errors + // CHECK-NEXT: `-DeclRefExpr {{.*}} 'foo' + foo.undef; +} -- 2.7.4