Avoiding "assignment from incompatible pointer type" warning

Florian Weimer fw@deneb.enyo.de
Mon Oct 21 06:52:00 GMT 2002


John Love-Jensen <eljay@adobe.com> writes:

>> I can't see why. Can you elaborate on that? I mean, casting on the
>> machine code level does just nothing - it's just "syntactic sugar" to
>> convince the compiler to be quiet. I think casting from one pointer
>> type to another does no harm at all. Am I wrong?
>
> You are correct, the casting is fine, insofar as the given code snippet
> goes.
>
> I assume the complaint/concern was regarding the (presumed)
> dereferencing of the int* p at some later point in the code.

Oh, please.  An implementation is free to consider such pointer
conversions to be undefined (of course, an implementation may do
something useful nevertheless), so it's essentially undefined.  And
the undefined behavior is triggered upon the cast, not when the
pointer is dereferenced.

6.3.2.3(7) only ensures that conforming implementations may not issue
a diagnostic for such programming errors.



More information about the Gcc-help mailing list