summaryrefslogtreecommitdiffstats
path: root/lldb/source/Symbol/ClangASTContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Symbol/ClangASTContext.cpp')
-rw-r--r--lldb/source/Symbol/ClangASTContext.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp
index 6d61c861f82..2ffb6d62bae 100644
--- a/lldb/source/Symbol/ClangASTContext.cpp
+++ b/lldb/source/Symbol/ClangASTContext.cpp
@@ -2593,14 +2593,16 @@ ClangASTContext::IsArrayType (lldb::opaque_compiler_type_t type,
{
default:
break;
-
+
case clang::Type::ConstantArray:
if (element_type_ptr)
element_type_ptr->SetCompilerType (getASTContext(), llvm::cast<clang::ConstantArrayType>(qual_type)->getElementType());
if (size)
*size = llvm::cast<clang::ConstantArrayType>(qual_type)->getSize().getLimitedValue(ULLONG_MAX);
+ if (is_incomplete)
+ *is_incomplete = false;
return true;
-
+
case clang::Type::IncompleteArray:
if (element_type_ptr)
element_type_ptr->SetCompilerType (getASTContext(), llvm::cast<clang::IncompleteArrayType>(qual_type)->getElementType());
@@ -2609,21 +2611,25 @@ ClangASTContext::IsArrayType (lldb::opaque_compiler_type_t type,
if (is_incomplete)
*is_incomplete = true;
return true;
-
+
case clang::Type::VariableArray:
if (element_type_ptr)
element_type_ptr->SetCompilerType (getASTContext(), llvm::cast<clang::VariableArrayType>(qual_type)->getElementType());
if (size)
*size = 0;
+ if (is_incomplete)
+ *is_incomplete = false;
return true;
-
+
case clang::Type::DependentSizedArray:
if (element_type_ptr)
element_type_ptr->SetCompilerType (getASTContext(), llvm::cast<clang::DependentSizedArrayType>(qual_type)->getElementType());
if (size)
*size = 0;
+ if (is_incomplete)
+ *is_incomplete = false;
return true;
-
+
case clang::Type::Typedef:
return IsArrayType(llvm::cast<clang::TypedefType>(qual_type)->getDecl()->getUnderlyingType().getAsOpaquePtr(),
element_type_ptr,
OpenPOWER on IntegriCloud