------- Comment #7 from hp at gcc dot gnu dot org 2008-04-02 19:56 ------- It's not just about creating a properly filled (or handling the NULLs in the) addr_vec after generating the tablejump or casesi: for machines with casesi, passing a NULL default_label (operand[4]; fifth operand) is...unexpected. While this could be pushed from the middle-end to the target domain by defining the NULL default label as a valid case that the target casesi pattern must handle (hard to do without casesi being a define_expand), I think it'd be better to just pass any label as default_label any at the try_casesi call.
Here's a related minor optimization opportunity for casesi: if default_label is set to the last case label, the max index / the range and the table size, can be shrunk by one. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35800