mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 15:06:06 +00:00

This implements support for the `= delete("message")` syntax that was only just added to C++26 ([P2573R2](https://isocpp.org/files/papers/P2573R2.html#proposal-scope)).
24 lines
783 B
C++
24 lines
783 B
C++
// Without serialization:
|
|
// RUN: %clang_cc1 -ast-dump %s | FileCheck %s
|
|
//
|
|
// With serialization:
|
|
// RUN: %clang_cc1 -emit-pch -o %t %s
|
|
// RUN: %clang_cc1 -x c++ -include-pch %t -ast-dump-all /dev/null | FileCheck %s
|
|
|
|
struct S {
|
|
// CHECK: CXXMethodDecl {{.*}} a 'void ()' delete
|
|
// CHECK-NEXT: delete message: StringLiteral {{.*}} "foo"
|
|
void a() = delete("foo");
|
|
|
|
// CHECK: FunctionTemplateDecl {{.*}} b
|
|
// CHECK-NEXT: TemplateTypeParmDecl
|
|
// CHECK-NEXT: CXXMethodDecl {{.*}} b 'void ()' delete
|
|
// CHECK-NEXT: delete message: StringLiteral {{.*}} "bar"
|
|
template <typename>
|
|
void b() = delete("bar");
|
|
};
|
|
|
|
// CHECK: FunctionDecl {{.*}} c 'void ()' delete
|
|
// CHECK-NEXT: delete message: StringLiteral {{.*}} "baz"
|
|
void c() = delete("baz");
|