diff options
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-deleted.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/debug-info-deleted.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-deleted.cpp b/clang/test/CodeGenCXX/debug-info-deleted.cpp new file mode 100644 index 00000000000..d7d0b6dba49 --- /dev/null +++ b/clang/test/CodeGenCXX/debug-info-deleted.cpp @@ -0,0 +1,31 @@ +// Test for debug info for C++11 deleted member functions + +//Supported: -O0, standalone DI +// RUN: %clang_cc1 -emit-llvm -triple x86_64-linux-gnu %s -o - \ +// RUN: -O0 -disable-llvm-passes \ +// RUN: -debug-info-kind=standalone \ +// RUN: | FileCheck %s -check-prefix=ATTR + +// ATTR: DISubprogram(name: "deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, +// ATTR: DISubprogram(name: "deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted +// ATTR: DISubprogram(name: "operator=", linkageName: "_ZN7deletedaSERKS_", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted +// ATTR: DISubprogram(name: "deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted +// ATTR: DISubprogram(name: "operator=", linkageName: "_ZN7deletedaSEOS_", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted +// ATTR: DISubprogram(name: "~deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, +class deleted { +public: + // Defaulted on purpose, so as to facilitate object creation + deleted() = default; + + deleted(const deleted &) = delete; + deleted &operator=(const deleted &) = delete; + + deleted(deleted &&) = delete; + deleted &operator=(deleted &&) = delete; + + ~deleted() = default; +}; + +void foo() { + deleted obj1; +} |