genrecog.c (write_switch): Avoid outputting of switch for types wider than int.
authorJan Hubicka <jh@suse.cz>
Wed, 9 May 2001 10:06:20 +0000 (12:06 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 9 May 2001 10:06:20 +0000 (10:06 +0000)
* genrecog.c (write_switch): Avoid outputting of switch for
types wider than int.

From-SVN: r41922

gcc/ChangeLog
gcc/genrecog.c

index a5e6fd2a1326e5c105f1492e655a29cf005e609e..8e72bd4a1f6bb20c89a0875dfaebf4e7c8e75617 100644 (file)
@@ -1,3 +1,8 @@
+Wed May  9 12:05:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * genrecog.c (write_switch): Avoid outputting of switch for
+       types wider than int.
+
 2001-05-03  Andrew Haley  <aph@cambridge.redhat.com>
 
        * reload1.c (copy_eh_notes): New function.
index 5d64378efd23aa88d66980b93268f982df877ca7..ba4043797d2e88577f2b55d2b35664c12dd0c09e 100644 (file)
@@ -1860,6 +1860,10 @@ write_switch (start, depth)
           || type == DT_elt_one_int
           || type == DT_elt_zero_wide)
     {
+      /* The argument is casted to int.  In case HOST_WIDE_INT is more exact,
+         we can't safely construct switch statement over it.  */
+      if (type == DT_elt_zero_wide && HOST_BITS_PER_WIDE_INT > sizeof (int) * CHAR_BIT)
+         return p;
       printf ("  switch (");
       switch (type)
        {