Displaying 3 results from an estimated 3 matches for "_convertible_".
2009 Nov 16
0
[LLVMdev] SAFECode Source Code Released
...lAllocator/PoolAllocatorBitMask.cpp:185:
> warning: dereferencing type-punned pointer will break strict-aliasing rules
> Line 185 is: PS->addToList((PoolSlab**)&Pool->Ptr2);
>
> and Ptr2 is a field of type void*. Isn't void* compatible with anything?
>
No. void* is _convertible_ to an arbitrary pointer type (6.3.2.3p1):
A pointer to void may be converted to or from a pointer to any
incomplete or object type. A pointer to any incomplete or object type
may be converted to a pointer to void and back again; the result shall
compare equal to the original pointer.
But the...
2009 Nov 16
2
[LLVMdev] SAFECode Source Code Released
On 2009-11-16 22:46, John Criswell wrote:
> [snip]
>>
>> My initial message (containing the patch) was a private reply to John.
>>
>> Attached the patch again, it applies with 'patch -p0'.
>>
>> Also try to build on x86-32, x86-64 is not quite ready yet.
>>
> Actually, I made one small change to the patch. I kept -Werror in
>
2009 Nov 17
2
[LLVMdev] SAFECode Source Code Released
...sk.cpp:185:
>> warning: dereferencing type-punned pointer will break strict-aliasing rules
>> Line 185 is: PS->addToList((PoolSlab**)&Pool->Ptr2);
>>
>> and Ptr2 is a field of type void*. Isn't void* compatible with anything?
>>
>
> No. void* is _convertible_ to an arbitrary pointer type (6.3.2.3p1):
>
> A pointer to void may be converted to or from a pointer to any
> incomplete or object type. A pointer to any incomplete or object type
> may be converted to a pointer to void and back again; the result shall
> compare equal to the origi...