aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGExprScalar.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-08-29 19:15:16 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-08-29 19:15:16 +0000
commit31976591dee494994f2546c72c23e1e35a9c1555 (patch)
tree61bdb0e43f2bdddcdeccb99e4ac0fadb59a2772a /lib/CodeGen/CGExprScalar.cpp
parentd933a0198f3ccce9c73bf2951625315b911d37bf (diff)
Patch for code gen. for c-style cast which ends in
using class's conversion functions [12.3.2-p2] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80433 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprScalar.cpp')
-rw-r--r--lib/CodeGen/CGExprScalar.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp
index 299296a633..f3a841dbb2 100644
--- a/lib/CodeGen/CGExprScalar.cpp
+++ b/lib/CodeGen/CGExprScalar.cpp
@@ -228,8 +228,11 @@ public:
}
Value *VisitCastExpr(const CastExpr *E) {
if (E->getCastKind() == CastExpr::CK_UserDefinedConversion) {
- const CXXFunctionalCastExpr *CXXFExpr = cast<CXXFunctionalCastExpr>(E);
- return CGF.EmitCXXFunctionalCastExpr(CXXFExpr).getScalarVal();
+ if (const CXXFunctionalCastExpr *CXXFExpr =
+ dyn_cast<CXXFunctionalCastExpr>(E))
+ return CGF.EmitCXXFunctionalCastExpr(CXXFExpr).getScalarVal();
+ assert(isa<CStyleCastExpr>(E) &&
+ "VisitCastExpr - missing CStyleCastExpr");
}
// Make sure to evaluate VLA bounds now so that we have them for later.