Index: lib/Sema/SemaChecking.cpp |
=================================================================== |
--- lib/Sema/SemaChecking.cpp (revision 132294) |
+++ lib/Sema/SemaChecking.cpp (working copy) |
@@ -2968,6 +2968,13 @@ |
if (!Source->isIntegerType() || !Target->isIntegerType()) |
return; |
+ if ((E->isNullPointerConstant(S.Context, Expr::NPC_ValueDependentIsNotNull) |
+ == Expr::NPCK_GNUNull) && Target->isIntegerType()) { |
+ S.Diag(E->getExprLoc(), diag::warn_impcast_null_pointer_to_integer) |
+ << E->getSourceRange() << clang::SourceRange(CC); |
+ return; |
+ } |
+ |
IntRange SourceRange = GetExprRange(S.Context, E); |
IntRange TargetRange = IntRange::forTargetOfCanonicalType(S.Context, Target); |