diff options
author | emaste <emaste@FreeBSD.org> | 2013-11-06 16:48:53 +0000 |
---|---|---|
committer | emaste <emaste@FreeBSD.org> | 2013-11-06 16:48:53 +0000 |
commit | c727fe695d28799acb499e9961f11ec07d4f9fe2 (patch) | |
tree | 56d79f94966870db1cecd65a7264510a25fd1cba /source/API/SBType.cpp | |
parent | 2e8c9206a971efee1b77ad2ae852265d6f4ecaa0 (diff) | |
download | FreeBSD-src-c727fe695d28799acb499e9961f11ec07d4f9fe2.zip FreeBSD-src-c727fe695d28799acb499e9961f11ec07d4f9fe2.tar.gz |
Import lldb as of SVN r194122
Sponsored by: DARPA, AFRL
Diffstat (limited to 'source/API/SBType.cpp')
-rw-r--r-- | source/API/SBType.cpp | 84 |
1 files changed, 41 insertions, 43 deletions
diff --git a/source/API/SBType.cpp b/source/API/SBType.cpp index 372d073..3055c27 100644 --- a/source/API/SBType.cpp +++ b/source/API/SBType.cpp @@ -7,12 +7,6 @@ // //===----------------------------------------------------------------------===// -#include <string.h> - -#include "clang/AST/ASTContext.h" -#include "clang/AST/TemplateBase.h" -#include "clang/AST/Type.h" - #include "lldb/API/SBDefines.h" #include "lldb/API/SBType.h" #include "lldb/API/SBStream.h" @@ -69,8 +63,10 @@ SBType::operator == (SBType &rhs) if (IsValid() == false) return !rhs.IsValid(); - return (rhs.m_opaque_sp->GetASTContext() == m_opaque_sp->GetASTContext()) && - (rhs.m_opaque_sp->GetOpaqueQualType() == m_opaque_sp->GetOpaqueQualType()); + if (rhs.IsValid() == false) + return false; + + return *m_opaque_sp.get() == *rhs.m_opaque_sp.get(); } bool @@ -78,9 +74,11 @@ SBType::operator != (SBType &rhs) { if (IsValid() == false) return rhs.IsValid(); - - return (rhs.m_opaque_sp->GetASTContext() != m_opaque_sp->GetASTContext()) || - (rhs.m_opaque_sp->GetOpaqueQualType() != m_opaque_sp->GetOpaqueQualType()); + + if (rhs.IsValid() == false) + return true; + + return *m_opaque_sp.get() != *rhs.m_opaque_sp.get(); } lldb::TypeImplSP @@ -142,7 +140,7 @@ SBType::GetByteSize() if (!IsValid()) return 0; - return m_opaque_sp->GetClangASTType().GetByteSize(); + return m_opaque_sp->GetClangASTType(false).GetByteSize(); } @@ -151,7 +149,7 @@ SBType::IsPointerType() { if (!IsValid()) return false; - return m_opaque_sp->GetClangASTType().IsPointerType(); + return m_opaque_sp->GetClangASTType(true).IsPointerType(); } bool @@ -159,7 +157,7 @@ SBType::IsReferenceType() { if (!IsValid()) return false; - return m_opaque_sp->GetClangASTType().IsReferenceType(); + return m_opaque_sp->GetClangASTType(true).IsReferenceType(); } SBType @@ -168,7 +166,7 @@ SBType::GetPointerType() if (!IsValid()) return SBType(); - return SBType(ClangASTType(m_opaque_sp->GetClangASTType().GetPointerType())); + return SBType(TypeImplSP(new TypeImpl(m_opaque_sp->GetPointerType()))); } SBType @@ -176,7 +174,7 @@ SBType::GetPointeeType() { if (!IsValid()) return SBType(); - return SBType(ClangASTType(m_opaque_sp->GetClangASTType().GetPointeeType())); + return SBType(TypeImplSP(new TypeImpl(m_opaque_sp->GetPointeeType()))); } SBType @@ -184,7 +182,7 @@ SBType::GetReferenceType() { if (!IsValid()) return SBType(); - return SBType(ClangASTType(m_opaque_sp->GetClangASTType().GetLValueReferenceType())); + return SBType(TypeImplSP(new TypeImpl(m_opaque_sp->GetReferenceType()))); } SBType @@ -192,7 +190,7 @@ SBType::GetDereferencedType() { if (!IsValid()) return SBType(); - return SBType(ClangASTType(m_opaque_sp->GetClangASTType().GetNonReferenceType())); + return SBType(TypeImplSP(new TypeImpl(m_opaque_sp->GetDereferencedType()))); } bool @@ -200,7 +198,7 @@ SBType::IsFunctionType () { if (!IsValid()) return false; - return m_opaque_sp->GetClangASTType().IsFunctionType(); + return m_opaque_sp->GetClangASTType(true).IsFunctionType(); } bool @@ -208,7 +206,7 @@ SBType::IsPolymorphicClass () { if (!IsValid()) return false; - return m_opaque_sp->GetClangASTType().IsPolymorphicClass(); + return m_opaque_sp->GetClangASTType(true).IsPolymorphicClass(); } @@ -218,7 +216,7 @@ SBType::GetFunctionReturnType () { if (IsValid()) { - ClangASTType return_clang_type (m_opaque_sp->GetClangASTType().GetFunctionReturnType()); + ClangASTType return_clang_type (m_opaque_sp->GetClangASTType(true).GetFunctionReturnType()); if (return_clang_type.IsValid()) return SBType(return_clang_type); } @@ -231,13 +229,13 @@ SBType::GetFunctionArgumentTypes () SBTypeList sb_type_list; if (IsValid()) { - QualType qual_type(QualType::getFromOpaquePtr(m_opaque_sp->GetOpaqueQualType())); - const FunctionProtoType* func = dyn_cast<FunctionProtoType>(qual_type.getTypePtr()); - if (func) + ClangASTType func_type(m_opaque_sp->GetClangASTType(true)); + size_t count = func_type.GetNumberOfFunctionArguments(); + for (size_t i = 0; + i < count; + i++) { - const uint32_t num_args = func->getNumArgs(); - for (uint32_t i=0; i<num_args; ++i) - sb_type_list.Append (SBType(ClangASTType(m_opaque_sp->GetASTContext(), func->getArgType(i).getAsOpaquePtr()))); + sb_type_list.Append(SBType(func_type.GetFunctionArgumentAtIndex(i))); } } return sb_type_list; @@ -248,14 +246,14 @@ SBType::GetUnqualifiedType() { if (!IsValid()) return SBType(); - return SBType(m_opaque_sp->GetClangASTType().GetFullyUnqualifiedType()); + return SBType(TypeImplSP(new TypeImpl(m_opaque_sp->GetUnqualifiedType()))); } lldb::SBType SBType::GetCanonicalType() { if (IsValid()) - return SBType(m_opaque_sp->GetClangASTType().GetCanonicalType()); + return SBType(TypeImplSP(new TypeImpl(m_opaque_sp->GetCanonicalType()))); return SBType(); } @@ -264,7 +262,7 @@ lldb::BasicType SBType::GetBasicType() { if (IsValid()) - return m_opaque_sp->GetClangASTType().GetBasicTypeEnumeration (); + return m_opaque_sp->GetClangASTType(false).GetBasicTypeEnumeration (); return eBasicTypeInvalid; } @@ -272,7 +270,7 @@ SBType SBType::GetBasicType(lldb::BasicType basic_type) { if (IsValid()) - return SBType (ClangASTContext::GetBasicType (m_opaque_sp->GetASTContext(), basic_type)); + return SBType (ClangASTContext::GetBasicType (m_opaque_sp->GetClangASTContext(false), basic_type)); return SBType(); } @@ -280,7 +278,7 @@ uint32_t SBType::GetNumberOfDirectBaseClasses () { if (IsValid()) - return m_opaque_sp->GetClangASTType().GetNumDirectBaseClasses(); + return m_opaque_sp->GetClangASTType(true).GetNumDirectBaseClasses(); return 0; } @@ -288,7 +286,7 @@ uint32_t SBType::GetNumberOfVirtualBaseClasses () { if (IsValid()) - return m_opaque_sp->GetClangASTType().GetNumVirtualBaseClasses(); + return m_opaque_sp->GetClangASTType(true).GetNumVirtualBaseClasses(); return 0; } @@ -296,7 +294,7 @@ uint32_t SBType::GetNumberOfFields () { if (IsValid()) - return m_opaque_sp->GetClangASTType().GetNumFields(); + return m_opaque_sp->GetClangASTType(false).GetNumFields(); return 0; } @@ -323,7 +321,7 @@ SBType::GetDirectBaseClassAtIndex (uint32_t idx) SBTypeMember sb_type_member; if (IsValid()) { - ClangASTType this_type (m_opaque_sp->GetClangASTType ()); + ClangASTType this_type (m_opaque_sp->GetClangASTType (true)); if (this_type.IsValid()) { uint32_t bit_offset = 0; @@ -344,7 +342,7 @@ SBType::GetVirtualBaseClassAtIndex (uint32_t idx) SBTypeMember sb_type_member; if (IsValid()) { - ClangASTType this_type (m_opaque_sp->GetClangASTType ()); + ClangASTType this_type (m_opaque_sp->GetClangASTType (true)); if (this_type.IsValid()) { uint32_t bit_offset = 0; @@ -364,7 +362,7 @@ SBType::GetFieldAtIndex (uint32_t idx) SBTypeMember sb_type_member; if (IsValid()) { - ClangASTType this_type (m_opaque_sp->GetClangASTType ()); + ClangASTType this_type (m_opaque_sp->GetClangASTType (false)); if (this_type.IsValid()) { uint64_t bit_offset = 0; @@ -397,7 +395,7 @@ SBType::IsTypeComplete() { if (!IsValid()) return false; - return m_opaque_sp->GetClangASTType().IsCompleteType(); + return m_opaque_sp->GetClangASTType(false).IsCompleteType(); } const char* @@ -405,14 +403,14 @@ SBType::GetName() { if (!IsValid()) return ""; - return m_opaque_sp->GetClangASTType().GetConstTypeName().GetCString(); + return m_opaque_sp->GetName().GetCString(); } lldb::TypeClass SBType::GetTypeClass () { if (IsValid()) - return m_opaque_sp->GetClangASTType().GetTypeClass(); + return m_opaque_sp->GetClangASTType(false).GetTypeClass(); return lldb::eTypeClassInvalid; } @@ -420,7 +418,7 @@ uint32_t SBType::GetNumberOfTemplateArguments () { if (IsValid()) - return m_opaque_sp->GetClangASTType().GetNumTemplateArguments(); + return m_opaque_sp->GetClangASTType(false).GetNumTemplateArguments(); return 0; } @@ -430,7 +428,7 @@ SBType::GetTemplateArgumentType (uint32_t idx) if (IsValid()) { TemplateArgumentKind kind = eTemplateArgumentKindNull; - ClangASTType template_arg_type = m_opaque_sp->GetClangASTType().GetTemplateArgument (idx, kind); + ClangASTType template_arg_type = m_opaque_sp->GetClangASTType(false).GetTemplateArgument (idx, kind); if (template_arg_type.IsValid()) return SBType(template_arg_type); } @@ -443,7 +441,7 @@ SBType::GetTemplateArgumentKind (uint32_t idx) { TemplateArgumentKind kind = eTemplateArgumentKindNull; if (IsValid()) - m_opaque_sp->GetClangASTType().GetTemplateArgument (idx, kind); + m_opaque_sp->GetClangASTType(false).GetTemplateArgument (idx, kind); return kind; } |