AST import for DeclRefExprs

llvm-svn: 96646
This commit is contained in:
Douglas Gregor 2010-02-19 01:17:02 +00:00
parent ad238e2bde
commit 52f820ead4
3 changed files with 29 additions and 2 deletions

View File

@ -107,6 +107,7 @@ namespace {
// 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 @@ Expr *ASTNodeImporter::VisitExpr(Expr *E) {
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())

View File

@ -2,6 +2,7 @@
enum E0 {
E0_Val0 = 'a',
E0_Val1 = (17),
E0_Val2 = (1 << 2)
E0_Val2 = (1 << 2),
E0_Val3 = E0_Val2
};

View File

@ -2,6 +2,7 @@
enum E0 {
E0_Val0 = 'a',
E0_Val1 = (17),
E0_Val2 = (1 << 2)
E0_Val2 = (1 << 2),
E0_Val3 = E0_Val2
};