[cfe-dev] new warnings
Mike Stump
mrs at apple.com
Fri Sep 26 20:28:12 PDT 2008
On Sep 26, 2008, at 5:25 PM, me22 wrote:
> On Thu, Sep 25, 2008 at 22:39, Mike Stump <mrs at apple.com> wrote:
>>
>> class DeclGroupRef {
>> uintptr_t ThePtr;
>>
>>
>> iterator begin() {
>> if (getKind() == DeclKind)
>> return ThePtr ? (Decl**) &ThePtr : 0;
>>
>> ? You think that is safe? Why? I don't see any unions, I don't see
>> any memcpys, no character types.
>
> That's a reinterpret_cast, so my understanding is that it's legal iff
> ThePtr was originally set by a reinterpret_cast from something with
> static type Decl**.
You're focusing in on the wrong thing. For what you're focused on,
yes, that part is fine. Instead, ask yourself, does he ever fetch an
object that has a different type then the type of the stored object?
If yes, does it fall within the rules for C++ aliasing? See my other
email for more details of what is wrong with the current version.
More information about the cfe-dev
mailing list