37 lines · cpp
1// Test for debug info for C++11 deleted member functions2 3//Supported: -O0, standalone DI4// RUN: %clang_cc1 -emit-llvm -triple x86_64-linux-gnu %s -o - \5// RUN: -O0 -disable-llvm-passes \6// RUN: -debug-info-kind=standalone \7// RUN: | FileCheck %s -check-prefix=ATTR8 9// ATTR: DISubprogram(name: "deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped,10// ATTR: DISubprogram(name: "deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted11// ATTR: DISubprogram(name: "operator=", linkageName: "_ZN7deletedaSERKS_", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted12// ATTR: DISubprogram(name: "deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted13// ATTR: DISubprogram(name: "operator=", linkageName: "_ZN7deletedaSEOS_", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped, spFlags: DISPFlagDeleted14// ATTR: DISubprogram(name: "func", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped | DIFlagRValueReference, spFlags: DISPFlagDeleted15// ATTR: DISubprogram(name: "bar", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped | DIFlagStaticMember, spFlags: DISPFlagDeleted16// ATTR: DISubprogram(name: "~deleted", {{.*}}, flags: DIFlagPublic | DIFlagPrototyped,17class deleted {18public:19 // Defaulted on purpose, so as to facilitate object creation20 deleted() = default;21 22 deleted(const deleted &) = delete;23 deleted &operator=(const deleted &) = delete;24 25 deleted(deleted &&) = delete;26 deleted &operator=(deleted &&) = delete;27 28 void func() && = delete;29 static int bar() = delete;30 31 ~deleted() = default;32};33 34void foo() {35 deleted obj1;36}37