aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorJim Laskey <jlaskey@mac.com>2006-07-11 15:58:09 +0000
committerJim Laskey <jlaskey@mac.com>2006-07-11 15:58:09 +0000
commite2a78f2e3dcea4a087fd776aefc56e9edef840a9 (patch)
treece0350e6e5ab55986917806c5cf1def26c74c555 /lib/CodeGen
parenta4e64359aafaf23e440e9dc171859daef1995f1b (diff)
downloadexternal_llvm-e2a78f2e3dcea4a087fd776aefc56e9edef840a9.zip
external_llvm-e2a78f2e3dcea4a087fd776aefc56e9edef840a9.tar.gz
external_llvm-e2a78f2e3dcea4a087fd776aefc56e9edef840a9.tar.bz2
1. Support for c++ mangled names.
2. Support for private/protected class members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29104 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/DwarfWriter.cpp6
-rw-r--r--lib/CodeGen/MachineDebugInfo.cpp9
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp
index 55bac8b..14bb962 100644
--- a/lib/CodeGen/DwarfWriter.cpp
+++ b/lib/CodeGen/DwarfWriter.cpp
@@ -1383,6 +1383,12 @@ DIE *DwarfWriter::NewType(DIE *Context, TypeDesc *TyDesc, CompileUnit *Unit) {
Block->AddUInt(DW_FORM_udata, FieldOffset >> 3);
Block->ComputeSize(*this);
Member->AddBlock(DW_AT_data_member_location, 0, Block);
+
+ if (MemberDesc->isProtected()) {
+ Member->AddUInt(DW_AT_accessibility, 0, DW_ACCESS_protected);
+ } else if (MemberDesc->isPrivate()) {
+ Member->AddUInt(DW_AT_accessibility, 0, DW_ACCESS_private);
+ }
Ty->AddChild(Member);
}
diff --git a/lib/CodeGen/MachineDebugInfo.cpp b/lib/CodeGen/MachineDebugInfo.cpp
index c1aac50..54fb1b9 100644
--- a/lib/CodeGen/MachineDebugInfo.cpp
+++ b/lib/CodeGen/MachineDebugInfo.cpp
@@ -671,6 +671,7 @@ TypeDesc::TypeDesc(unsigned T)
, Size(0)
, Align(0)
, Offset(0)
+, Flags(0)
{}
/// ApplyToFields - Target the visitor to the fields of the TypeDesc.
@@ -685,6 +686,7 @@ void TypeDesc::ApplyToFields(DIVisitor *Visitor) {
Visitor->Apply(Size);
Visitor->Apply(Align);
Visitor->Apply(Offset);
+ if (getVersion() > LLVMDebugVersion4) Visitor->Apply(Flags);
}
/// getDescString - Return a string used to compose global names and labels.
@@ -710,7 +712,8 @@ void TypeDesc::dump() {
<< "Line(" << Line << "), "
<< "Size(" << Size << "), "
<< "Align(" << Align << "), "
- << "Offset(" << Offset << ")\n";
+ << "Offset(" << Offset << "), "
+ << "Flags(" << Flags << ")\n";
}
#endif
@@ -1029,6 +1032,7 @@ GlobalDesc::GlobalDesc(unsigned T)
: AnchoredDesc(T)
, Context(0)
, Name("")
+, DisplayName("")
, File(NULL)
, Line(0)
, TyDesc(NULL)
@@ -1043,6 +1047,7 @@ void GlobalDesc::ApplyToFields(DIVisitor *Visitor) {
Visitor->Apply(Context);
Visitor->Apply(Name);
+ if (getVersion() > LLVMDebugVersion4) Visitor->Apply(DisplayName);
Visitor->Apply(File);
Visitor->Apply(Line);
Visitor->Apply(TyDesc);
@@ -1096,6 +1101,7 @@ void GlobalVariableDesc::dump() {
<< "Tag(" << getTag() << "), "
<< "Anchor(" << getAnchor() << "), "
<< "Name(\"" << getName() << "\"), "
+ << "DisplayName(\"" << getDisplayName() << "\"), "
<< "File(" << getFile() << "),"
<< "Line(" << getLine() << "),"
<< "Type(\"" << getType() << "\"), "
@@ -1148,6 +1154,7 @@ void SubprogramDesc::dump() {
<< "Tag(" << getTag() << "), "
<< "Anchor(" << getAnchor() << "), "
<< "Name(\"" << getName() << "\"), "
+ << "DisplayName(\"" << getDisplayName() << "\"), "
<< "File(" << getFile() << "),"
<< "Line(" << getLine() << "),"
<< "Type(\"" << getType() << "\"), "