]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 4 Oct 2011 07:40:07 +0000 (07:40 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 4 Oct 2011 07:40:07 +0000 (07:40 +0000)
From-SVN: r179493

gcc/ChangeLog
gcc/config/sparc/sparc.c

index f33228528141bf89186a23aaa0e6726e546dd649..886d22743c60b7c7fff7c49ebe8ccb8b89eec309 100644 (file)
@@ -1,3 +1,7 @@
+2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
+
 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
        * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
index 4df9f6a8088f21866e828448a1b2f29838c2d6fa..5e67b4c0093713f3b9e6496219af61eb072cfc6b 100644 (file)
@@ -9716,24 +9716,23 @@ sparc_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED,
 
   if (ignore)
     {
-      switch (icode)
-       {
-       case CODE_FOR_alignaddrsi_vis:
-       case CODE_FOR_alignaddrdi_vis:
-       case CODE_FOR_wrgsr_vis:
-       case CODE_FOR_bmasksi_vis:
-       case CODE_FOR_bmaskdi_vis:
-       case CODE_FOR_cmask8si_vis:
-       case CODE_FOR_cmask8di_vis:
-       case CODE_FOR_cmask16si_vis:
-       case CODE_FOR_cmask16di_vis:
-       case CODE_FOR_cmask32si_vis:
-       case CODE_FOR_cmask32di_vis:
-         break;
-
-       default:
-         return build_zero_cst (rtype);
-       }
+      /* Note that a switch statement instead of the sequence of tests would
+        be incorrect as many of the CODE_FOR values could be CODE_FOR_nothing
+        and that would yield multiple alternatives with identical values.  */
+      if (icode == CODE_FOR_alignaddrsi_vis
+         || icode == CODE_FOR_alignaddrdi_vis
+         || icode == CODE_FOR_wrgsr_vis
+         || icode == CODE_FOR_bmasksi_vis
+         || icode == CODE_FOR_bmaskdi_vis
+         || icode == CODE_FOR_cmask8si_vis
+         || icode == CODE_FOR_cmask8di_vis
+         || icode == CODE_FOR_cmask16si_vis
+         || icode == CODE_FOR_cmask16di_vis
+         || icode == CODE_FOR_cmask32si_vis
+         || icode == CODE_FOR_cmask32di_vis)
+       ;
+      else
+       return build_zero_cst (rtype);
     }
 
   switch (icode)