On Fri, Jan 16, 2009 at 10:37 AM, rguenth at gcc dot gnu dot org
wrote:
>
>
> --- Comment #6 from rguenth at gcc dot gnu dot org 2009-01-16 18:37
> ---
> Guaranteed by 7.18.1.4.
>
"These types are optional."
:)
--- Comment #6 from rguenth at gcc dot gnu dot org 2009-01-16 18:37 ---
Guaranteed by 7.18.1.4.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38835
--- Comment #5 from pinskia at gmail dot com 2009-01-16 18:33 ---
Subject: Re: field-insensitive PTA causes libstdc++ miscompiles
On Fri, Jan 16, 2009 at 10:30 AM, rguenth at gcc dot gnu dot org
wrote:
>
> (void *)((intptr_t)&iptr + (intptr_t)p - (intptr_t)&iptr)
>
> <==>
>
> (void *)
On Fri, Jan 16, 2009 at 10:30 AM, rguenth at gcc dot gnu dot org
wrote:
>
> (void *)((intptr_t)&iptr + (intptr_t)p - (intptr_t)&iptr)
>
> <==>
>
> (void *)(intptr_t)p
>
> which is guaranteed by the std
No that is not guaranteed because of:
If the result cannot be represented in the integer type,
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-01-16 18:30 ---
void *p;
intptr_t iptr = (intptr_t)p - (intptr_t)&iptr;
of course. Then this is just
(void *)((intptr_t)&iptr + (intptr_t)p - (intptr_t)&iptr)
<==>
(void *)(intptr_t)p
which is guaranteed by the std
--
--- Comment #3 from rguenther at suse dot de 2009-01-16 18:27 ---
Subject: Re: field-insensitive PTA causes
libstdc++ miscompiles
On Fri, 16 Jan 2009, pinskia at gcc dot gnu dot org wrote:
> --- Comment #2 from pinskia at gcc dot gnu dot org 2009-01-16 18:22
> ---
>
--- Comment #2 from pinskia at gcc dot gnu dot org 2009-01-16 18:22 ---
return reinterpret_cast<_Tp*>(reinterpret_cast<_UIntPtrType>(this)
+ _M_diff);
(const struct _Fwd_list_node_base *) this p+ (long unsigned int) ((const
struct _R
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-01-16 13:36 ---
Mine.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned