[RFA] expand from SSA form (1/2)
Michael Matz
matz@suse.de
Mon Apr 27 15:08:00 GMT 2009
Hi,
On Mon, 27 Apr 2009, David Edelsohn wrote:
> A function in cgraphunit.c is being mis-compiled, probably
> build_cdtor(). This causes cgraph_build_static_cdtor() to be called
> with an invalid priority of "-1", instead of 65535. The priority should
> not be negative. This negative priority value generates an invalid
> global file function name:
> ...
> Both Darwin and AIX are bootstrapping in 32 bit mode. Richi suggested
> on IRC that this may be related to some known CONST_INT issue for
> which you already have a patch.
This confusion with the numbers seems indeed related to PR39922. If you
can test the below patch on powerpc that would be nice. I know that it
fixes the PR on i686-linux where something similar happens.
Ciao,
Michael.
--
PR middle-end/39922
* tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert constants.
Index: tree-outof-ssa.c
===================================================================
--- tree-outof-ssa.c (revision 146829)
+++ tree-outof-ssa.c (working copy)
@@ -184,7 +184,7 @@ insert_value_copy_on_edge (edge e, int d
start_sequence ();
mode = GET_MODE (SA.partition_to_pseudo[dest]);
x = expand_expr (src, SA.partition_to_pseudo[dest], mode, EXPAND_NORMAL);
- if (GET_MODE (x) != mode)
+ if (GET_MODE (x) != VOIDmode && GET_MODE (x) != mode)
x = convert_to_mode (mode, x, TYPE_UNSIGNED (TREE_TYPE (src)));
if (x != SA.partition_to_pseudo[dest])
emit_move_insn (SA.partition_to_pseudo[dest], x);
More information about the Gcc-patches
mailing list