[cfe-commits] [PATCH] PR13824 warn if reinterpret_cast used for up/downcast

Jordan Rose jordan_rose at apple.com
Wed Jan 23 18:33:23 PST 2013


On Jan 23, 2013, at 14:53 , Dmitri Gribenko <gribozavr at gmail.com> wrote:

> On Thu, Jan 24, 2013 at 12:40 AM, Alexander Zinenko <ftynse at gmail.com> wrote:
>> On 23 January 2013 23:52, Dmitri Gribenko <gribozavr at gmail.com> wrote:
>>> I think it is sensible to leave the warning on by default.  The
>>> purpose of a separate flag is to turn off the (possibly) noisy case
>>> separately.
>> 
>> Having it on by default, clang fails to pass these tests:
>>    Clang :: Analysis/inlining/dyn-dispatch-bifurcate.cpp
>>    Clang :: SemaCXX/address-space-conversion.cpp
>> That's why the noisy version was disabled by default even in the first
>> version.
> 
> Well, compiler tests do weird things, so this is not representative.

dyn-dispatch-bifurcate is actually what encouraged me to file that PR in the first place. You can go ahead and add it as an expected warning there.

For address-space-conversion, you could disable the warning in the RUN line.


> I think the only reasonable false positive source for zero adjustment
> case is templates:
> 
> template<typename T, typename U>
> void foo(T *t) {
>  ... reinterpret_cast<U*>(t);
> }
> 
> Where T and U have some subtyping relationship.






More information about the cfe-commits mailing list