------- Comment #5 from pinskia at gcc dot gnu dot org 2006-02-16 13:35 ------- (In reply to comment #4) > The MEM is marked as MEM_NOTRAP_P, by do_tablejump -> gen_const_mem. > Still, IMHO you can't do that, otherwise we couldn't mark any MEM > as MEM_NOTRAP_P unless it has constant operand. If a particular array > will not trap, it doesn't mean you can add arbitrary offset to it and still > expect it will not trap.
Huh? /* 1 if RTX is a mem that cannot trap. */ @findex MEM_NOTRAP_P @cindex @code{mem} and @samp{/c} @cindex @code{call}, in @code{mem} @item MEM_NOTRAP_P (@var{x}) In @code{mem}, nonzero for memory references that will not trap. Stored in the @code{call} field and printed as @samp{/c}. Since this reference can trap if it was pulled before the is, it should not be marked as such. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26316