VIEW_CONVERT_EXPR is tcc_reference, but we can have a statement like:

        x = <VIEW_CONVERT_EXPR some_type> 22;

What ends up happening here is that find_interesting_uses_stmt calls
find_interesting_uses_address, which goes down the references and
runs into the constant, which it doesn't know how to handle.  I think
the simplest fix is below.  It's certainly safe in that it converts
an ICE into not aborting and seems to do the right thing.  The test case
is in Ada and proprietary and it didn't seem worthwhile to make a small
one for something this simple.

Does the following look correct?

*** tree-ssa-loop-im.c  11 Mar 2005 09:05:10 -0000      2.31
--- tree-ssa-loop-im.c  19 Mar 2005 00:12:02 -0000
*************** for_each_index (tree *addr_p, bool (*cbc
*** 195,198 ****
--- 195,199 ----
        case STRING_CST:
        case RESULT_DECL:
+       case INTEGER_CST:
          return true;
  

Reply via email to