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



Jakub Jelinek <jakub at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2013-02-26

                 CC|                            |jakub at gcc dot gnu.org,

                   |                            |steven at gcc dot gnu.org

     Ever Confirmed|0                           |1



--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-26 
12:03:15 UTC ---

Seems to be broken by http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00163.html

The assumption that only alpha-vms doesn't define ASM_OUTPUT_ADDR_DIFF_ELT

doesn't seem to be true.



echo `for i in config/*/; do grep -q ASM_OUTPUT_ADDR_DIFF_ELT $i/*  || echo $i;

done`

config/avr/ config/m32c/ config/mep/ config/moxie/ config/picochip/

config/stormy16/ config/vms/



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



fixes this, or do you want Steven to add that if (flag_pic) flag_jump_tables =

false; to all those targets?

Reply via email to