diff options
| author | John McCall <rjmccall@apple.com> | 2011-09-09 05:25:32 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2011-09-09 05:25:32 +0000 |
| commit | 9320b87cff21e87752c5b511ba49aaead5d5792c (patch) | |
| tree | 47977c15fd7ca50d320cb73f624a0d5010ecad86 /clang/lib/Sema/Sema.cpp | |
| parent | 10162ab7edce78aab8c9943b0c15eef4a4115db0 (diff) | |
| download | bcm5719-llvm-9320b87cff21e87752c5b511ba49aaead5d5792c.tar.gz bcm5719-llvm-9320b87cff21e87752c5b511ba49aaead5d5792c.zip | |
Give conversions of block pointers to ObjC pointers a different cast kind
than conversions of C pointers to ObjC pointers. In order to ensure that
we've caught every case, add asserts to CastExpr that strictly determine
which cast kind is used for which kind of bit cast.
llvm-svn: 139352
Diffstat (limited to 'clang/lib/Sema/Sema.cpp')
| -rw-r--r-- | clang/lib/Sema/Sema.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 7bd0a4a3308..4e4f80bd0bc 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -261,7 +261,9 @@ ExprResult Sema::ImpCastExprToType(Expr *E, QualType Ty, CastKind Sema::ScalarTypeToBooleanCastKind(QualType ScalarTy) { switch (ScalarTy->getScalarTypeKind()) { case Type::STK_Bool: return CK_NoOp; - case Type::STK_Pointer: return CK_PointerToBoolean; + case Type::STK_CPointer: return CK_PointerToBoolean; + case Type::STK_BlockPointer: return CK_PointerToBoolean; + case Type::STK_ObjCObjectPointer: return CK_PointerToBoolean; case Type::STK_MemberPointer: return CK_MemberPointerToBoolean; case Type::STK_Integral: return CK_IntegralToBoolean; case Type::STK_Floating: return CK_FloatingToBoolean; |

