[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