This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: A strange behavior of apple-ppc-branch on darwin7.3.0
- From: "Sam Lauber" <sam124 at operamail dot com>
- To: "Mostafa Hagog" <MUSTAFA at il dot ibm dot com>, gcc at gcc dot gnu dot org
- Date: Thu, 02 Dec 2004 02:54:34 +0100
- Subject: Re: A strange behavior of apple-ppc-branch on darwin7.3.0
Odd. That should produce a segmentation fault. If the cleanup_control_flow function returns an int, it would be bitwise-ORed with 0 bits. If zero-bits are ORed with anything other then 1-bits, then it becomes 1. My idea is:
if (TARGET == "powerpc-apple-darwin7.3.0")
{
/* This is my fix. Bypass bitwise-or. */
retval = cleanup_control_flow();
retval |= retval;
}
Bug?
Samuel Lauber
----- Original Message -----
From: "Mostafa Hagog" <MUSTAFA@il.ibm.com>
To: gcc@gcc.gnu.org
Subject: A strange behavior of apple-ppc-branch on darwin7.3.0
Date: Wed, 1 Dec 2004 10:39:15 +0200
>
>
>
>
>
> A build (or bootstrap) of apple-ppc-branch on powerpc-apple-darwin7.3.0,
> (on a G5 machine) ICEs as follows:
> ../../gcc/gcc/libgcc2.c: In function '__divdi3':
> ../../gcc/gcc/libgcc2.c:997: internal compiler error: in cleanup_tree_cfg,
> at tree-cfg.c:727
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://developer.apple.com/bugreporter> for instructions.
> make[2]: *** [libgcc/./_divdi3.o] Error 1
> make[1]: *** [libgcc.a] Error 2
> make: *** [all-gcc] Error 2
>
> But with the below change to cleanup_tree_cfg, the ICE disappears.
> Any thoughts?
>
> Mostafa.
>
> Index: tree-cfg.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/tree-cfg.c,v
> retrieving revision 1.1.4.278.2.15
> diff -c -p -r1.1.4.278.2.15 tree-cfg.c
> *** tree-cfg.c 16 Nov 2004 20:20:15 -0000 1.1.4.278.2.15
> --- tree-cfg.c 1 Dec 2004 08:28:29 -0000
> *************** cleanup_tree_cfg (void)
> *** 719,724 ****
> --- 719,727 ----
> retval = cleanup_control_flow ();
> retval |= delete_unreachable_blocks ();
> retval |= thread_jumps ();
> + retval |= cleanup_control_flow ();
> + retval |= delete_unreachable_blocks ();
> + retval |= thread_jumps ();
>
> #ifdef ENABLE_CHECKING
> if (retval)
--
_____________________________________________________________
Web-based SMS services available at http://www.operamail.com.
From your mailbox to local or overseas cell phones.
Powered by Outblaze