[Bug middle-end/23369] [4.0.x regression] Generates wrong code for funcptr comparison
Andrew Pinski
pinskia@physics.uc.edu
Sat Aug 13 21:44:00 GMT 2005
On Aug 13, 2005, at 5:42 PM, danglin at gcc dot gnu dot org wrote:
>
> ------- Additional Comments From danglin at gcc dot gnu dot org
> 2005-08-13 21:42 -------
> Bah, while this is probably going to happen for hppa-linux, it'snever
> going to happen for hppa-hpux. GCC's treatment of functionpointers
> here is just WRONG.There are a couple of issues. The most serious is
> the following:We have the following code from __pthread_sigaction in
> the .i file: if (old == ((__sighandler_t) 1) || old ==
> ((__sighandler_t) 0) || old == ((__sighandler_t) -1))
> __sighandler[sig].old = (arch_sighandler_t)
> act->__sigaction_handler.sa_handler;This is what the above turns into
> in the tree dump filebug321785.c.t02.original: if ((void
> (*<T2bd>) (int)) old - 2B > -4B) {
> __sighandler[sig].old = (void (*<T431>) (int, struct sigcontext *))
> act->__sigaction_handler.sa_handler; }I don't believe that
> the transformation is valid.
hmm, looks like another build_range_test bug.
-- Pinski
More information about the Gcc-bugs
mailing list