xref: /llvm-project/clang/test/AST/ast-dump-cxx2c-delete-with-message.cpp (revision ef164cee90477e294ff692209b4cf97a0e1958ed)
1 // Without serialization:
2 // RUN: %clang_cc1 -ast-dump %s | FileCheck %s
3 //
4 // With serialization:
5 // RUN: %clang_cc1 -emit-pch -o %t %s
6 // RUN: %clang_cc1 -x c++ -include-pch %t -ast-dump-all  /dev/null | FileCheck %s
7 
8 struct S {
9   // CHECK:      CXXMethodDecl {{.*}} a 'void ()' delete
10   // CHECK-NEXT:   delete message: StringLiteral {{.*}} "foo"
11   void a() = delete("foo");
12 
13   // CHECK:      FunctionTemplateDecl {{.*}} b
14   // CHECK-NEXT:   TemplateTypeParmDecl
15   // CHECK-NEXT:   CXXMethodDecl {{.*}} b 'void ()' delete
16   // CHECK-NEXT:     delete message: StringLiteral {{.*}} "bar"
17   template <typename>
18   void b() = delete("bar");
19 };
20 
21 // CHECK:      FunctionDecl {{.*}} c 'void ()' delete
22 // CHECK-NEXT:   delete message: StringLiteral {{.*}} "baz"
23 void c() = delete("baz");
24