diff mbox

[SPARC] Fix build failure

Message ID 201110040937.01574.ebotcazou@adacore.com
State New
Headers show

Commit Message

Eric Botcazou Oct. 4, 2011, 7:37 a.m. UTC
Tested on SPARC/Solaris, applied on the mainline.


2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.

Comments

David Miller Oct. 4, 2011, 2:17 p.m. UTC | #1
From: Eric Botcazou <ebotcazou@adacore.com>
Date: Tue, 4 Oct 2011 09:37:01 +0200

> Tested on SPARC/Solaris, applied on the mainline.
> 
> 
> 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
> 
> 	* config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.

Thanks for fixing this Eric.
diff mbox

Patch

Index: config/sparc/sparc.c
===================================================================
--- config/sparc/sparc.c	(revision 179488)
+++ config/sparc/sparc.c	(working copy)
@@ -9716,24 +9716,23 @@  sparc_fold_builtin (tree fndecl, int n_a
 
   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)