Updated Clang to a version that supports propagating
the "virtual" flag when importing a C++ function
declaration. Made changes to LLDB to support other
changes in Clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124355 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Symbol/ClangASTContext.cpp b/source/Symbol/ClangASTContext.cpp
index 3edbf8a..e179bde 100644
--- a/source/Symbol/ClangASTContext.cpp
+++ b/source/Symbol/ClangASTContext.cpp
@@ -75,7 +75,7 @@
case clang::Type::Record:
case clang::Type::Enum:
{
- clang::TagType *tag_type = dyn_cast<clang::TagType>(qual_type.getTypePtr());
+ const clang::TagType *tag_type = dyn_cast<clang::TagType>(qual_type.getTypePtr());
if (tag_type)
{
clang::TagDecl *tag_decl = tag_type->getDecl();
@@ -103,7 +103,7 @@
case clang::Type::ObjCObject:
case clang::Type::ObjCInterface:
{
- clang::ObjCObjectType *objc_class_type = dyn_cast<clang::ObjCObjectType>(qual_type);
+ const clang::ObjCObjectType *objc_class_type = dyn_cast<clang::ObjCObjectType>(qual_type);
if (objc_class_type)
{
clang::ObjCInterfaceDecl *class_interface_decl = objc_class_type->getInterface();
@@ -1078,7 +1078,7 @@
case clang::Type::ObjCObject:
case clang::Type::ObjCInterface:
{
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
assert (objc_class_type);
if (objc_class_type)
{
@@ -1357,12 +1357,12 @@
const bool is_implicitly_declared = false;
- clang::FunctionType *function_Type = dyn_cast<FunctionType>(method_qual_type.getTypePtr());
+ const clang::FunctionType *function_Type = dyn_cast<FunctionType>(method_qual_type.getTypePtr());
if (function_Type == NULL)
return NULL;
- FunctionProtoType *method_function_prototype (dyn_cast<FunctionProtoType>(function_Type));
+ const FunctionProtoType *method_function_prototype (dyn_cast<FunctionProtoType>(function_Type));
if (!method_function_prototype)
return NULL;
@@ -1494,7 +1494,7 @@
QualType record_qual_type(QualType::getFromOpaquePtr(record_clang_type));
- clang::Type *clang_type = record_qual_type.getTypePtr();
+ const clang::Type *clang_type = record_qual_type.getTypePtr();
if (clang_type)
{
const RecordType *record_type = dyn_cast<RecordType>(clang_type);
@@ -1527,7 +1527,7 @@
}
else
{
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(clang_type);
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(clang_type);
if (objc_class_type)
{
bool is_synthesized = false;
@@ -1610,7 +1610,7 @@
{
QualType qual_type(QualType::getFromOpaquePtr(clang_type));
- RecordType *record_type = dyn_cast<RecordType>(qual_type.getTypePtr());
+ const RecordType *record_type = dyn_cast<RecordType>(qual_type.getTypePtr());
if (record_type)
{
RecordDecl *record_decl = record_type->getDecl();
@@ -1710,12 +1710,12 @@
{
QualType class_qual_type(QualType::getFromOpaquePtr(class_opaque_type));
QualType super_qual_type(QualType::getFromOpaquePtr(super_opaque_type));
- clang::Type *class_type = class_qual_type.getTypePtr();
- clang::Type *super_type = super_qual_type.getTypePtr();
+ const clang::Type *class_type = class_qual_type.getTypePtr();
+ const clang::Type *super_type = super_qual_type.getTypePtr();
if (class_type && super_type)
{
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
- ObjCObjectType *objc_super_type = dyn_cast<ObjCObjectType>(super_type);
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
+ const ObjCObjectType *objc_super_type = dyn_cast<ObjCObjectType>(super_type);
if (objc_class_type && objc_super_type)
{
ObjCInterfaceDecl *class_interface_decl = objc_class_type->getInterface();
@@ -1754,10 +1754,10 @@
QualType class_qual_type(QualType::getFromOpaquePtr(class_opaque_type));
- clang::Type *class_type = class_qual_type.getTypePtr();
+ const clang::Type *class_type = class_qual_type.getTypePtr();
if (class_type)
{
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
if (objc_class_type)
{
@@ -1799,10 +1799,10 @@
{
QualType class_qual_type(QualType::getFromOpaquePtr(class_opaque_type));
- clang::Type *class_type = class_qual_type.getTypePtr();
+ const clang::Type *class_type = class_qual_type.getTypePtr();
if (class_type)
{
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
if (objc_class_type)
return ObjCDeclHasIVars (objc_class_type->getInterface(), check_superclass);
@@ -1846,11 +1846,11 @@
QualType class_qual_type(QualType::getFromOpaquePtr(class_opaque_type));
- clang::Type *class_type = class_qual_type.getTypePtr();
+ const clang::Type *class_type = class_qual_type.getTypePtr();
if (class_type == NULL)
return NULL;
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(class_type);
if (objc_class_type == NULL)
return NULL;
@@ -1897,12 +1897,12 @@
QualType method_qual_type (QualType::getFromOpaquePtr (method_opaque_type));
// Populate the method decl with parameter decls
- clang::Type *method_type(method_qual_type.getTypePtr());
+ const clang::Type *method_type(method_qual_type.getTypePtr());
if (method_type == NULL)
return NULL;
- FunctionProtoType *method_function_prototype (dyn_cast<FunctionProtoType>(method_type));
+ const FunctionProtoType *method_function_prototype (dyn_cast<FunctionProtoType>(method_type));
if (!method_function_prototype)
return NULL;
@@ -2175,7 +2175,7 @@
case clang::Type::ObjCInterface:
if (GetCompleteQualType (ast, qual_type))
{
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
assert (objc_class_type);
if (objc_class_type)
{
@@ -2204,7 +2204,7 @@
case clang::Type::ObjCObjectPointer:
{
- ObjCObjectPointerType *pointer_type = cast<ObjCObjectPointerType>(qual_type.getTypePtr());
+ const ObjCObjectPointerType *pointer_type = cast<ObjCObjectPointerType>(qual_type.getTypePtr());
QualType pointee_type = pointer_type->getPointeeType();
uint32_t num_pointee_children = ClangASTContext::GetNumChildren (ast,
pointee_type.getAsOpaquePtr(),
@@ -2223,7 +2223,7 @@
case clang::Type::Pointer:
{
- PointerType *pointer_type = cast<PointerType>(qual_type.getTypePtr());
+ const PointerType *pointer_type = cast<PointerType>(qual_type.getTypePtr());
QualType pointee_type (pointer_type->getPointeeType());
uint32_t num_pointee_children = ClangASTContext::GetNumChildren (ast,
pointee_type.getAsOpaquePtr(),
@@ -2242,7 +2242,7 @@
case clang::Type::LValueReference:
case clang::Type::RValueReference:
{
- ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
+ const ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
QualType pointee_type = reference_type->getPointeeType();
uint32_t num_pointee_children = ClangASTContext::GetNumChildren (ast,
pointee_type.getAsOpaquePtr(),
@@ -2533,7 +2533,7 @@
case clang::Type::ObjCInterface:
if (GetCompleteQualType (ast, parent_qual_type))
{
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(parent_qual_type.getTypePtr());
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(parent_qual_type.getTypePtr());
assert (objc_class_type);
if (objc_class_type)
{
@@ -2610,7 +2610,7 @@
case clang::Type::ObjCObjectPointer:
{
- ObjCObjectPointerType *pointer_type = cast<ObjCObjectPointerType>(parent_qual_type.getTypePtr());
+ const ObjCObjectPointerType *pointer_type = cast<ObjCObjectPointerType>(parent_qual_type.getTypePtr());
QualType pointee_type = pointer_type->getPointeeType();
if (transparent_pointers && ClangASTContext::IsAggregateType (pointee_type.getAsOpaquePtr()))
@@ -2679,7 +2679,7 @@
case clang::Type::Pointer:
{
- PointerType *pointer_type = cast<PointerType>(parent_qual_type.getTypePtr());
+ const PointerType *pointer_type = cast<PointerType>(parent_qual_type.getTypePtr());
QualType pointee_type = pointer_type->getPointeeType();
// Don't dereference "void *" pointers
@@ -2730,7 +2730,7 @@
case clang::Type::LValueReference:
case clang::Type::RValueReference:
{
- ReferenceType *reference_type = cast<ReferenceType>(parent_qual_type.getTypePtr());
+ const ReferenceType *reference_type = cast<ReferenceType>(parent_qual_type.getTypePtr());
QualType pointee_type(reference_type->getPointeeType());
clang_type_t pointee_clang_type = pointee_type.getAsOpaquePtr();
if (transparent_pointers && ClangASTContext::IsAggregateType (pointee_clang_type))
@@ -3078,7 +3078,7 @@
if (GetCompleteQualType (ast, qual_type))
{
StringRef name_sref(name);
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
assert (objc_class_type);
if (objc_class_type)
{
@@ -3182,7 +3182,7 @@
case clang::Type::LValueReference:
case clang::Type::RValueReference:
{
- ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
+ const ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
QualType pointee_type = reference_type->getPointeeType();
if (ClangASTContext::IsAggregateType (pointee_type.getAsOpaquePtr()))
@@ -3198,7 +3198,7 @@
case clang::Type::Pointer:
{
- PointerType *pointer_type = cast<PointerType>(qual_type.getTypePtr());
+ const PointerType *pointer_type = cast<PointerType>(qual_type.getTypePtr());
QualType pointee_type = pointer_type->getPointeeType();
if (ClangASTContext::IsAggregateType (pointee_type.getAsOpaquePtr()))
@@ -3314,7 +3314,7 @@
if (GetCompleteQualType (ast, qual_type))
{
StringRef name_sref(name);
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type.getTypePtr());
assert (objc_class_type);
if (objc_class_type)
{
@@ -3397,7 +3397,7 @@
case clang::Type::LValueReference:
case clang::Type::RValueReference:
{
- ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
+ const ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
QualType pointee_type = reference_type->getPointeeType();
if (ClangASTContext::IsAggregateType (pointee_type.getAsOpaquePtr()))
@@ -3412,7 +3412,7 @@
case clang::Type::Pointer:
{
- PointerType *pointer_type = cast<PointerType>(qual_type.getTypePtr());
+ const PointerType *pointer_type = cast<PointerType>(qual_type.getTypePtr());
QualType pointee_type = pointer_type->getPointeeType();
if (ClangASTContext::IsAggregateType (pointee_type.getAsOpaquePtr()))
@@ -3464,10 +3464,10 @@
if (tag_clang_type)
{
QualType tag_qual_type(QualType::getFromOpaquePtr(tag_clang_type));
- clang::Type *clang_type = tag_qual_type.getTypePtr();
+ const clang::Type *clang_type = tag_qual_type.getTypePtr();
if (clang_type)
{
- TagType *tag_type = dyn_cast<TagType>(clang_type);
+ const TagType *tag_type = dyn_cast<TagType>(clang_type);
if (tag_type)
{
TagDecl *tag_decl = dyn_cast<TagDecl>(tag_type->getDecl());
@@ -3661,10 +3661,10 @@
if (clang_type)
{
QualType qual_type (QualType::getFromOpaquePtr(clang_type));
- clang::Type *t = qual_type.getTypePtr();
+ const clang::Type *t = qual_type.getTypePtr();
if (t)
{
- TagType *tag_type = dyn_cast<TagType>(t);
+ const TagType *tag_type = dyn_cast<TagType>(t);
if (tag_type)
{
TagDecl *tag_decl = tag_type->getDecl();
@@ -3695,7 +3695,7 @@
return true;
}
- ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type);
+ const ObjCObjectType *objc_class_type = dyn_cast<ObjCObjectType>(qual_type);
if (objc_class_type)
{
@@ -3789,7 +3789,7 @@
{
QualType enum_qual_type (QualType::getFromOpaquePtr(enum_clang_type));
- clang::Type *clang_type = enum_qual_type.getTypePtr();
+ const clang::Type *clang_type = enum_qual_type.getTypePtr();
if (clang_type)
{
const EnumType *enum_type = dyn_cast<EnumType>(clang_type);
@@ -3824,7 +3824,7 @@
assert (identifier_table != NULL);
QualType enum_qual_type (QualType::getFromOpaquePtr(enum_clang_type));
- clang::Type *clang_type = enum_qual_type.getTypePtr();
+ const clang::Type *clang_type = enum_qual_type.getTypePtr();
if (clang_type)
{
const EnumType *enum_type = dyn_cast<EnumType>(clang_type);
@@ -4177,7 +4177,7 @@
case clang::Type::LValueReference:
case clang::Type::RValueReference:
{
- ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
+ const ReferenceType *reference_type = cast<ReferenceType>(qual_type.getTypePtr());
if (reference_type)
return ClangASTContext::IsFunctionPointerType (reference_type->getPointeeType().getAsOpaquePtr());
}
@@ -4192,7 +4192,7 @@
{
if (clang_type)
{
- ConstantArrayType *array = cast<ConstantArrayType>(QualType::getFromOpaquePtr(clang_type).getTypePtr());
+ const ConstantArrayType *array = cast<ConstantArrayType>(QualType::getFromOpaquePtr(clang_type).getTypePtr());
if (array)
return array->getSize().getLimitedValue();
}
diff --git a/source/Symbol/ClangASTType.cpp b/source/Symbol/ClangASTType.cpp
index 328c7b4..b3ed25e 100644
--- a/source/Symbol/ClangASTType.cpp
+++ b/source/Symbol/ClangASTType.cpp
@@ -522,7 +522,7 @@
bool is_array_of_characters = false;
clang::QualType element_qual_type = array->getElementType();
- clang::Type *canonical_type = element_qual_type->getCanonicalTypeInternal().getTypePtr();
+ const clang::Type *canonical_type = element_qual_type->getCanonicalTypeInternal().getTypePtr();
if (canonical_type)
is_array_of_characters = canonical_type->isCharType();
@@ -898,7 +898,7 @@
ClangASTType::IsDefined (clang_type_t clang_type)
{
clang::QualType qual_type(clang::QualType::getFromOpaquePtr(clang_type));
- clang::TagType *tag_type = dyn_cast<clang::TagType>(qual_type.getTypePtr());
+ const clang::TagType *tag_type = dyn_cast<clang::TagType>(qual_type.getTypePtr());
if (tag_type)
{
clang::TagDecl *tag_decl = tag_type->getDecl();
@@ -908,7 +908,7 @@
}
else
{
- clang::ObjCObjectType *objc_class_type = dyn_cast<clang::ObjCObjectType>(qual_type);
+ const clang::ObjCObjectType *objc_class_type = dyn_cast<clang::ObjCObjectType>(qual_type);
if (objc_class_type)
{
clang::ObjCInterfaceDecl *class_interface_decl = objc_class_type->getInterface();
@@ -951,7 +951,7 @@
llvm::SmallVector<char, 1024> buf;
llvm::raw_svector_ostream llvm_ostrm (buf);
- clang::TagType *tag_type = dyn_cast<clang::TagType>(qual_type.getTypePtr());
+ const clang::TagType *tag_type = dyn_cast<clang::TagType>(qual_type.getTypePtr());
if (tag_type)
{
clang::TagDecl *tag_decl = tag_type->getDecl();
@@ -966,7 +966,7 @@
case clang::Type::ObjCObject:
case clang::Type::ObjCInterface:
{
- clang::ObjCObjectType *objc_class_type = dyn_cast<clang::ObjCObjectType>(qual_type.getTypePtr());
+ const clang::ObjCObjectType *objc_class_type = dyn_cast<clang::ObjCObjectType>(qual_type.getTypePtr());
assert (objc_class_type);
if (objc_class_type)
{
diff --git a/source/Symbol/Function.cpp b/source/Symbol/Function.cpp
index 373d5e6..c2ad76b 100644
--- a/source/Symbol/Function.cpp
+++ b/source/Symbol/Function.cpp
@@ -404,7 +404,7 @@
{
clang::QualType clang_type (clang::QualType::getFromOpaquePtr(GetType()->GetClangType()));
assert (clang_type->isFunctionType());
- clang::FunctionType *function_type = dyn_cast<clang::FunctionType> (clang_type);
+ const clang::FunctionType *function_type = dyn_cast<clang::FunctionType> (clang_type);
clang::QualType fun_return_qualtype = function_type->getResultType();
const ConstString fun_return_name(ClangASTType::GetClangTypeName(fun_return_qualtype.getAsOpaquePtr()));
@@ -484,7 +484,7 @@
const char *
Function::GetArgumentNameAtIndex (size_t idx)
{
- clang::Type *clang_type = static_cast<clang::QualType *>(GetType()->GetClangType())->getTypePtr();
+ const clang::Type *clang_type = static_cast<clang::QualType *>(GetType()->GetClangType())->getTypePtr();
assert (clang_type->isFunctionType());
if (!clang_type->isFunctionProtoType())
return NULL;