diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/AST/ASTImporter.cpp | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/lib/AST/ASTImporter.cpp b/lib/AST/ASTImporter.cpp index 5993e9ac34..ea5b68f162 100644 --- a/lib/AST/ASTImporter.cpp +++ b/lib/AST/ASTImporter.cpp @@ -1038,30 +1038,20 @@ Decl *ASTNodeImporter::VisitVarDecl(VarDecl *D) { break; } - if (const IncompleteArrayType *FoundArray - = Importer.getToContext().getAsIncompleteArrayType( - FoundVar->getType())) { - if (const ConstantArrayType *TArray - = Importer.getToContext().getAsConstantArrayType(T)) { - if (Importer.getToContext().typesAreCompatible( - TArray->getElementType(), - FoundArray->getElementType())) { - FoundVar->setType(T); - MergeWithVar = FoundVar; - break; - } - } - } else if (const IncompleteArrayType *TArray - = Importer.getToContext().getAsIncompleteArrayType(T)) { - if (const ConstantArrayType *FoundArray - = Importer.getToContext().getAsConstantArrayType( - FoundVar->getType())) { - if (Importer.getToContext().typesAreCompatible( - TArray->getElementType(), - FoundArray->getElementType())) { - MergeWithVar = FoundVar; - break; - } + const ArrayType *FoundArray + = Importer.getToContext().getAsArrayType(FoundVar->getType()); + const ArrayType *TArray + = Importer.getToContext().getAsArrayType(T); + if (FoundArray && TArray) { + if (isa<IncompleteArrayType>(FoundArray) && + isa<ConstantArrayType>(TArray)) { + FoundVar->setType(T); + MergeWithVar = FoundVar; + break; + } else if (isa<IncompleteArrayType>(TArray) && + isa<ConstantArrayType>(FoundArray)) { + MergeWithVar = FoundVar; + break; } } |