diff options
author | Devang Patel <dpatel@apple.com> | 2010-09-29 21:46:16 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-09-29 21:46:16 +0000 |
commit | 10a7a6a7ec20179b51544f093aee816a1a41793e (patch) | |
tree | 30a6bd8cc4036b71396b05f279369bc1ef7907bc | |
parent | df1997d84757335809f0b5a2b2b6dff9752edba2 (diff) |
Emit method access specifier.
Radar 8490416.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115090 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 6 | ||||
-rw-r--r-- | test/CodeGenCXX/debug-info-method.cpp | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 9e8dfb0825..e2ad3e1b56 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -701,6 +701,12 @@ CGDebugInfo::CreateCXXMemberFunction(const CXXMethodDecl *Method, unsigned Flags = 0; if (Method->isImplicit()) Flags |= llvm::DIDescriptor::FlagArtificial; + AccessSpecifier Access = Method->getAccess(); + if (Access == clang::AS_private) + Flags |= llvm::DIDescriptor::FlagPrivate; + else if (Access == clang::AS_protected) + Flags |= llvm::DIDescriptor::FlagProtected; + llvm::DISubprogram SP = DebugFactory.CreateSubprogram(RecordTy , MethodName, MethodName, MethodLinkageName, diff --git a/test/CodeGenCXX/debug-info-method.cpp b/test/CodeGenCXX/debug-info-method.cpp new file mode 100644 index 0000000000..5935727851 --- /dev/null +++ b/test/CodeGenCXX/debug-info-method.cpp @@ -0,0 +1,6 @@ +// RUN: %clang -fverbose-asm -cc1 -g -S %s -o - | grep DW_ACCESS_protected +class A { +protected: + int foo(); +}; +A a; |