Hi! As the PR shows, alpha-vms wasn't the only target which doesn't define ASM_OUTPUT_ADDR_DIFF_ELT, avr is another one, and I can find several others.
So, either we put this check back, or we need to adjust all those targets to disable flag_jump_tables for flag_pic. 2013-02-26 Jakub Jelinek <ja...@redhat.com> PR target/56455 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true. --- gcc/stmt.c.jj 2013-01-11 09:03:17.000000000 +0100 +++ gcc/stmt.c 2013-02-26 12:43:16.362812625 +0100 @@ -1760,6 +1760,10 @@ expand_switch_as_decision_tree_p (tree r return true; if (!flag_jump_tables) return true; +#ifndef ASM_OUTPUT_ADDR_DIFF_ELT + if (flag_pic) + return true; +#endif /* If the switch is relatively small such that the cost of one indirect jump on the target are higher than the cost of a Jakub