------- Comment #6 from dje at gcc dot gnu dot org  2006-10-12 23:02 -------
The reason this is going off the rails is a "long" index invokes
expand_expr_real_1 with PLUS_EXP and modifier=EXPAND_NORMAL while "long long"
invokes it with modifier=EXPAND_SUM.  For EXPAND_NORMAL, GCC invokes
expand_operands() and then calls expand_binop(), which tests predicates.  For
EXPAND_SUM, expand_operands() is followed by simplify_gen_binary(), which does
not check predicates.  Invalid RTL is created and fun ensues.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29250

Reply via email to