mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 21:53:12 +08:00
Address some of Anders comments
llvm-svn: 91670
This commit is contained in:
@@ -579,10 +579,14 @@ CodeGenFunction::EmitCXXConstructExpr(llvm::Value *Dest,
|
||||
const Expr *Arg = E->getArg(0);
|
||||
|
||||
if (const ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(Arg)) {
|
||||
if (isa<CXXBindTemporaryExpr>(ICE->getSubExpr()))
|
||||
Arg = cast<CXXBindTemporaryExpr>(ICE->getSubExpr())->getSubExpr();
|
||||
} else if (const CXXBindTemporaryExpr *BindExpr =
|
||||
dyn_cast<CXXBindTemporaryExpr>(Arg))
|
||||
assert((ICE->getCastKind() == CastExpr::CK_NoOp ||
|
||||
ICE->getCastKind() == CastExpr::CK_ConstructorConversion) &&
|
||||
"Unknown implicit cast kind in constructor elision");
|
||||
Arg = ICE->getSubExpr();
|
||||
}
|
||||
|
||||
if (const CXXBindTemporaryExpr *BindExpr =
|
||||
dyn_cast<CXXBindTemporaryExpr>(Arg))
|
||||
Arg = BindExpr->getSubExpr();
|
||||
|
||||
EmitAggExpr(Arg, Dest, false);
|
||||
|
||||
Reference in New Issue
Block a user