[cfe-commits] r96646 - in /cfe/trunk: lib/AST/ASTImporter.cpp test/ASTMerge/Inputs/exprs1.c test/ASTMerge/Inputs/exprs2.c

Douglas Gregor dgregor at apple.com
Thu Feb 18 17:17:03 PST 2010


Author: dgregor
Date: Thu Feb 18 19:17:02 2010
New Revision: 96646

URL: http://llvm.org/viewvc/llvm-project?rev=96646&view=rev
Log:
AST import for DeclRefExprs

Modified:
    cfe/trunk/lib/AST/ASTImporter.cpp
    cfe/trunk/test/ASTMerge/Inputs/exprs1.c
    cfe/trunk/test/ASTMerge/Inputs/exprs2.c

Modified: cfe/trunk/lib/AST/ASTImporter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=96646&r1=96645&r2=96646&view=diff

==============================================================================
--- cfe/trunk/lib/AST/ASTImporter.cpp (original)
+++ cfe/trunk/lib/AST/ASTImporter.cpp Thu Feb 18 19:17:02 2010
@@ -107,6 +107,7 @@
 
     // Importing expressions
     Expr *VisitExpr(Expr *E);
+    Expr *VisitDeclRefExpr(DeclRefExpr *E);
     Expr *VisitIntegerLiteral(IntegerLiteral *E);
     Expr *VisitCharacterLiteral(CharacterLiteral *E);
     Expr *VisitParenExpr(ParenExpr *E);
@@ -2594,6 +2595,30 @@
   return 0;
 }
 
+Expr *ASTNodeImporter::VisitDeclRefExpr(DeclRefExpr *E) {
+  NestedNameSpecifier *Qualifier = 0;
+  if (E->getQualifier()) {
+    Qualifier = Importer.Import(E->getQualifier());
+    if (!E->getQualifier())
+      return 0;
+  }
+  
+  ValueDecl *ToD = cast_or_null<ValueDecl>(Importer.Import(E->getDecl()));
+  if (!ToD)
+    return 0;
+  
+  QualType T = Importer.Import(E->getType());
+  if (T.isNull())
+    return 0;
+  
+  return DeclRefExpr::Create(Importer.getToContext(), Qualifier,
+                             Importer.Import(E->getQualifierRange()),
+                             ToD,
+                             Importer.Import(E->getLocation()),
+                             T,
+                             /*FIXME:TemplateArgs=*/0);
+}
+
 Expr *ASTNodeImporter::VisitIntegerLiteral(IntegerLiteral *E) {
   QualType T = Importer.Import(E->getType());
   if (T.isNull())

Modified: cfe/trunk/test/ASTMerge/Inputs/exprs1.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/Inputs/exprs1.c?rev=96646&r1=96645&r2=96646&view=diff

==============================================================================
--- cfe/trunk/test/ASTMerge/Inputs/exprs1.c (original)
+++ cfe/trunk/test/ASTMerge/Inputs/exprs1.c Thu Feb 18 19:17:02 2010
@@ -2,6 +2,7 @@
 enum E0 {
   E0_Val0 = 'a',
   E0_Val1 = (17),
-  E0_Val2 = (1 << 2)
+  E0_Val2 = (1 << 2),
+  E0_Val3 = E0_Val2
 };
 

Modified: cfe/trunk/test/ASTMerge/Inputs/exprs2.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/Inputs/exprs2.c?rev=96646&r1=96645&r2=96646&view=diff

==============================================================================
--- cfe/trunk/test/ASTMerge/Inputs/exprs2.c (original)
+++ cfe/trunk/test/ASTMerge/Inputs/exprs2.c Thu Feb 18 19:17:02 2010
@@ -2,6 +2,7 @@
 enum E0 {
   E0_Val0 = 'a',
   E0_Val1 = (17),
-  E0_Val2 = (1 << 2)
+  E0_Val2 = (1 << 2),
+  E0_Val3 = E0_Val2
 };
 





More information about the cfe-commits mailing list