[cfe-commits] r167358 - in /cfe/trunk: lib/Sema/SemaChecking.cpp test/Sema/warn-type-safety-mpi-hdf5.c test/Sema/warn-type-safety.c test/Sema/warn-type-safety.cpp

Dmitri Gribenko gribozavr at gmail.com
Sat Nov 3 15:13:07 PDT 2012


On Sat, Nov 3, 2012 at 11:54 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Sat, Nov 3, 2012 at 9:07 AM, Dmitri Gribenko <gribozavr at gmail.com> wrote:
>> Author: gribozavr
>> Date: Sat Nov  3 11:07:49 2012
>> New Revision: 167358
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=167358&view=rev
>> Log:
>> Handle CK_NullToPointer casts in -Wtype-safety properly.  Fixes PR14249.
>>
>> Modified:
>>     cfe/trunk/lib/Sema/SemaChecking.cpp
>>     cfe/trunk/test/Sema/warn-type-safety-mpi-hdf5.c
>>     cfe/trunk/test/Sema/warn-type-safety.c
>>     cfe/trunk/test/Sema/warn-type-safety.cpp
>>
>> Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=167358&r1=167357&r2=167358&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaChecking.cpp Sat Nov  3 11:07:49 2012
>> @@ -6189,7 +6189,9 @@
>>    if (IsPointerAttr) {
>>      // Skip implicit cast of pointer to `void *' (as a function argument).
>>      if (const ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(ArgumentExpr))
>> -      if (ICE->getType()->isVoidPointerType())
>> +      if (ICE->getType()->isVoidPointerType() &&
>> +          ICE->getCastKind() != CK_NullToPointer &&
>> +          ICE->getCastKind() != CK_NullToMemberPointer)
>
> We generally prefer to check what a cast kind is, not what it isn't...
> there are so many kinds of casts, it's very easy to miss one.  Please
> check "getCastKind() == CK_Bitcast" instead.

Thanks Eli!  Changed in r167362.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/



More information about the cfe-commits mailing list