]> granicus.if.org Git - clang/commitdiff
Simplify incomplete-array merging code in the AST importer, thanks to
authorDouglas Gregor <dgregor@apple.com>
Fri, 12 Feb 2010 17:23:39 +0000 (17:23 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 12 Feb 2010 17:23:39 +0000 (17:23 +0000)
Daniel's suggestion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95987 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/ASTImporter.cpp

index 5993e9ac34ef584a6642c983147977be5fd22423..ea5b68f162699de457ff6aa0966461e4ec71bede 100644 (file)
@@ -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;
             }
           }