-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Zdenek Dvorak wrote: > > this can never happen. Note that is_real_op = is_gimple_reg (var), and > a call clobbered variable can never satisfy is_gimple_reg. Most likely > you forget to set TREE_ADDRESSABLE for this variable. Or it gets to > call_clobbered_vars wrongly.
Oh! That might explain why this hasn't manifested itself on mainline yet and why even after I put in this workaround patch: - ------------------------ 8< ----------------------- Index: tree-ssa-operands.c =================================================================== - --- tree-ssa-operands.c (revision 109471) +++ tree-ssa-operands.c (working copy) @@ -1770,8 +1770,10 @@ add_call_read_ops (tree stmt) /* Add a VUSE for each call-clobbered variable. */ EXECUTE_IF_SET_IN_BITMAP (call_clobbered_vars, 0, i, bi) { - - tree var = referenced_var (i); - - add_stmt_operand (&var, &empty_ann, opf_none); + /* FIXME: Temporary workaround. */ + tree **var_pp = ggc_alloc (sizeof (tree *)); + *var_pp = &(referenced_var (i)); + add_stmt_operand (*var_pp, &empty_ann, opf_none); } ro_call_aliased_loads = empty_ann.makes_aliased_loads; - ------------------------ 8< ----------------------- it still aborts later on (checking is enabled) in var_ann() in tree-flow-inline.h where the assertion DECL_P(t) fails - T happens to be an SSA_NAME that wraps(?) the VAR_DECL for the "SPECIALS" field of the UnicodeBlock inner class of java.lang.Character. All the times that this erroneous code path was taken, the variables were either "SPECIALS" itself or aliases to it. Thanks a lot. I'll investigate this when I get some more time. However, it still remains true that the code path I referred to is wrong and if, as you say, it can never be taken, it should just be removed and replaced with an assertion codifying what you are saying. Thanks, Ranjit. - -- Ranjit Mathew Email: rmathew AT gmail DOT com Bangalore, INDIA. Web: http://ranjitmathew.hostingzero.com/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFDwc/uYb1hx2wRS48RAiGjAJ9yXv0wlyEf3mTP8uhZWrAssvphBwCggLLM Ve3PA7Ql4Qm40yUBSvjdNqU= =w40V -----END PGP SIGNATURE-----