forked from OSchip/llvm-project
AST import for CStyleCastExpr. With this, we can import Cocoa.h into an empty context
llvm-svn: 96648
This commit is contained in:
parent
d8552cdc96
commit
5481d329a3
|
@ -116,6 +116,7 @@ namespace {
|
|||
Expr *VisitBinaryOperator(BinaryOperator *E);
|
||||
Expr *VisitCompoundAssignOperator(CompoundAssignOperator *E);
|
||||
Expr *VisitImplicitCastExpr(ImplicitCastExpr *E);
|
||||
Expr *VisitCStyleCastExpr(CStyleCastExpr *E);
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -2747,6 +2748,25 @@ Expr *ASTNodeImporter::VisitImplicitCastExpr(ImplicitCastExpr *E) {
|
|||
E->isLvalueCast());
|
||||
}
|
||||
|
||||
Expr *ASTNodeImporter::VisitCStyleCastExpr(CStyleCastExpr *E) {
|
||||
QualType T = Importer.Import(E->getType());
|
||||
if (T.isNull())
|
||||
return 0;
|
||||
|
||||
Expr *SubExpr = Importer.Import(E->getSubExpr());
|
||||
if (!SubExpr)
|
||||
return 0;
|
||||
|
||||
TypeSourceInfo *TInfo = Importer.Import(E->getTypeInfoAsWritten());
|
||||
if (!TInfo && E->getTypeInfoAsWritten())
|
||||
return 0;
|
||||
|
||||
return new (Importer.getToContext()) CStyleCastExpr(T, E->getCastKind(),
|
||||
SubExpr, TInfo,
|
||||
Importer.Import(E->getLParenLoc()),
|
||||
Importer.Import(E->getRParenLoc()));
|
||||
}
|
||||
|
||||
ASTImporter::ASTImporter(Diagnostic &Diags,
|
||||
ASTContext &ToContext, FileManager &ToFileManager,
|
||||
ASTContext &FromContext, FileManager &FromFileManager)
|
||||
|
|
|
@ -4,6 +4,7 @@ enum E0 {
|
|||
E0_Val1 = (17),
|
||||
E0_Val2 = (1 << 2),
|
||||
E0_Val3 = E0_Val2,
|
||||
E0_Val4 = sizeof(int*)
|
||||
E0_Val4 = sizeof(int*),
|
||||
E0_Val5 = (unsigned int)-1
|
||||
};
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ enum E0 {
|
|||
E0_Val1 = (17),
|
||||
E0_Val2 = (1 << 2),
|
||||
E0_Val3 = E0_Val2,
|
||||
E0_Val4 = sizeof(int*)
|
||||
E0_Val4 = sizeof(int*),
|
||||
E0_Val5 = (unsigned int)-1
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue