Hi Marek,

> All right.  I'll commit the patch on Monday.

this patch caused quite some breakage: Ada, Solaris/x86 and SPARC don't
bootstrap any longer. 

The following patch allows i386-pc-solaris2.12 and sparc-sun-solaris2.12
bootstraps continue.

Strangely, I needed to use gcc_fallthrough () in i386.c; a mere /* FALLTHRU */
had no effect.

Ok for mainline if the bootstraps pass (with appropriate changelog
entries, of course)?

        Rainer


diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -596,7 +596,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entit
 	gnu_expr
 	  = gnat_to_gnu_external (Expression (Declaration_Node (gnat_entity)));
 
-      /* ... fall through ... */
+      /* fall through */
 
     case E_Exception:
     case E_Loop_Parameter:
@@ -3369,7 +3369,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entit
 	  break;
 	}
 
-      /* ... fall through ... */
+      /* fall through */
 
     case E_Record_Subtype:
       /* If Cloned_Subtype is Present it means this record subtype has
@@ -3804,7 +3804,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entit
 	    break;
 	}
 
-      /* ... fall through ... */
+      /* fall through */
 
     case E_Allocator_Type:
     case E_Access_Type:
@@ -6882,7 +6882,7 @@ choices_to_gnu (tree operand, Node_Id ch
 	      break;
 	    }
 
-	  /* ... fall through ... */
+	  /* fall through */
 
 	case N_Character_Literal:
 	case N_Integer_Literal:
@@ -8089,7 +8089,7 @@ annotate_value (tree gnu_size)
       else
 	return Uint_Minus_1;
 
-      /* Fall through... */
+      /* fall through */
 
     default:
       return No_Uint;
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -157,7 +157,7 @@ gnat_handle_option (size_t scode, const 
     case OPT_gant:
       warning (0, "%<-gnat%> misspelled as %<-gant%>");
 
-      /* ... fall through ... */
+      /* fall through */
 
     case OPT_gnat:
     case OPT_gnatO:
@@ -486,13 +486,13 @@ gnat_print_type (FILE *file, tree node, 
       else
 	print_node (file, "index type", TYPE_INDEX_TYPE (node), indent + 4);
 
-      /* ... fall through ... */
+      /* fall through */
 
     case ENUMERAL_TYPE:
     case BOOLEAN_TYPE:
       print_node_brief (file, "RM size", TYPE_RM_SIZE (node), indent + 4);
 
-      /* ... fall through ... */
+      /* fall through */
 
     case REAL_TYPE:
       print_node_brief (file, "RM min", TYPE_RM_MIN_VALUE (node), indent + 4);
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -844,7 +844,7 @@ lvalue_required_p (Node_Id gnat_node, tr
 		 && Ekind (Entity (gnat_temp)) == E_Enumeration_Literal))
 	  return 1;
 
-      /* ... fall through ... */
+      /* fall through */
 
     case N_Slice:
       /* Only the array expression can require an lvalue.  */
@@ -890,7 +890,7 @@ lvalue_required_p (Node_Id gnat_node, tr
 	if (!constant)
 	  return 1;
 
-      /* ... fall through ... */
+      /* fall through */
 
     case N_Type_Conversion:
     case N_Qualified_Expression:
@@ -914,7 +914,7 @@ lvalue_required_p (Node_Id gnat_node, tr
 				  get_unpadded_type (Etype (gnat_parent)),
 				  true, false, true);
 
-      /* ... fall through ... */
+      /* fall through */
 
     default:
       return 0;
@@ -1681,7 +1681,7 @@ Attribute_to_gnu (Node_Id gnat_node, tre
 	  break;
 	}
 
-      /* ... fall through ... */
+      /* fall through */
 
     case Attr_Access:
     case Attr_Unchecked_Access:
@@ -1938,7 +1938,7 @@ Attribute_to_gnu (Node_Id gnat_node, tre
 	  break;
 	}
 
-      /* ... fall through ... */
+      /* fall through */
 
     case Attr_Length:
       {
@@ -2393,7 +2393,7 @@ Attribute_to_gnu (Node_Id gnat_node, tre
       /* We treat Model as identical to Machine.  This is true for at least
 	 IEEE and some other nice floating-point systems.  */
 
-      /* ... fall through ... */
+      /* fall through */
 
     case Attr_Machine:
       /* The trick is to force the compiler to store the result in memory so
@@ -2537,7 +2537,7 @@ Case_Statement_to_gnu (Node_Id gnat_node
 		  break;
 		}
 
-	      /* ... fall through ... */
+	      /* fall through */
 
 	    case N_Character_Literal:
 	    case N_Integer_Literal:
@@ -4007,7 +4007,7 @@ node_is_atomic (Node_Id gnat_node)
 	  && Has_Atomic_Components (Entity (Prefix (gnat_node))))
 	return true;
 
-      /* ... fall through ... */
+      /* fall through */
 
     case N_Explicit_Dereference:
       return Is_Atomic (Etype (gnat_node));
@@ -4123,7 +4123,7 @@ atomic_access_required_p (Node_Id gnat_n
       /* Nothing to do if we are the prefix of an attribute, since we do not
 	 want an atomic access for things like 'Size.  */
 
-      /* ... fall through ... */
+      /* fall through */
 
     case N_Reference:
       /* The N_Reference node is like an attribute.  */
@@ -6580,7 +6580,7 @@ gnat_to_gnu (Node_Id gnat_node)
 	  break;
 	}
 
-      /* ... fall through ... */
+      /* fall through */
 
     case N_Op_Eq:
     case N_Op_Ne:
@@ -6747,7 +6747,7 @@ gnat_to_gnu (Node_Id gnat_node)
 	  break;
 	}
 
-      /* ... fall through ... */
+      /* fall through */
 
     case N_Op_Minus:
     case N_Op_Abs:
@@ -8344,7 +8344,7 @@ gnat_gimplify_expr (tree *expr_p, gimple
 	    break;
 	  }
 
-      /* ... fall through ... */
+      /* fall through */
 
     default:
       return GS_UNHANDLED;
@@ -9867,7 +9867,7 @@ set_gnu_expr_location_from_node (tree no
       if (EXPR_P (TREE_OPERAND (node, 1)))
 	set_gnu_expr_location_from_node (TREE_OPERAND (node, 1), gnat_node);
 
-      /* ... fall through ... */
+      /* fall through */
 
     default:
       if (!REFERENCE_CLASS_P (node) && !EXPR_HAS_LOCATION (node))
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -3166,7 +3166,7 @@ create_subprog_decl (tree name, tree asm
 				    NULL_TREE, NULL_TREE),
 			 ATTR_FLAG_TYPE_IN_PLACE);
 
-      /* ... fall through ... */
+      /* fall through */
 
     case is_enabled:
       DECL_DECLARED_INLINE_P (subprog_decl) = 1;
@@ -4271,6 +4271,8 @@ convert (tree type, tree expr)
 	  return expr;
 	}
 
+      /* fall through */
+
     case CONSTRUCTOR:
       /* If we are converting a CONSTRUCTOR to a mere type variant, or to
 	 another padding type around the same type, just make a new one in
@@ -4508,7 +4510,7 @@ convert (tree type, tree expr)
 					  convert (TREE_TYPE (type),
 						   TYPE_MIN_VALUE (type))));
 
-      /* ... fall through ... */
+      /* fall through */
 
     case ENUMERAL_TYPE:
     case BOOLEAN_TYPE:
@@ -4585,7 +4587,7 @@ convert (tree type, tree expr)
 	  return gnat_build_constructor (type, v);
 	}
 
-      /* ... fall through ... */
+      /* fall through */
 
     case ARRAY_TYPE:
       /* In these cases, assume the front-end has validated the conversion.
@@ -4701,7 +4703,7 @@ convert_to_index_type (tree expr)
 	  break;
       }
 
-      /* ... fall through ... */
+      /* fall through */
 
     case NON_LVALUE_EXPR:
       return fold_build1 (code, sizetype,
diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c
--- a/gcc/ada/gcc-interface/utils2.c
+++ b/gcc/ada/gcc-interface/utils2.c
@@ -180,7 +180,7 @@ known_alignment (tree exp)
 	  return known_alignment (t);
       }
 
-      /* ... fall through ... */
+      /* fall through */
 
     default:
       /* For other pointer expressions, we assume that the pointed-to object
@@ -1011,7 +1011,7 @@ build_binary_op (enum tree_code op_code,
       if (!operation_type)
 	operation_type = TREE_TYPE (left_type);
 
-      /* ... fall through ... */
+      /* fall through */
 
     case ARRAY_RANGE_REF:
       /* First look through conversion between type variants.  Note that
@@ -1230,7 +1230,7 @@ build_binary_op (enum tree_code op_code,
 	op_code = MINUS_EXPR;
       modulus = NULL_TREE;
 
-      /* ... fall through ... */
+      /* fall through */
 
     case PLUS_EXPR:
     case MINUS_EXPR:
@@ -1244,7 +1244,7 @@ build_binary_op (enum tree_code op_code,
 	  = gnat_type_for_mode (TYPE_MODE (operation_type),
 				TYPE_UNSIGNED (operation_type));
 
-      /* ... fall through ... */
+      /* fall through */
 
     default:
     common:
@@ -1466,7 +1466,7 @@ build_unary_op (enum tree_code op_code, 
 	    return build_unary_op (ADDR_EXPR, result_type,
 				   TREE_OPERAND (operand, 0));
 
-	  /* ... fallthru ... */
+	  /* fallthru */
 
 	case VIEW_CONVERT_EXPR:
 	  /* If this just a variant conversion or if the conversion doesn't
@@ -1487,7 +1487,7 @@ build_unary_op (enum tree_code op_code, 
 	case CONST_DECL:
 	  operand = DECL_CONST_CORRESPONDING_VAR (operand);
 
-	  /* ... fall through ... */
+	  /* fall through */
 
 	default:
 	common:
@@ -1648,7 +1648,7 @@ build_unary_op (enum tree_code op_code, 
 	  }
       }
 
-      /* ... fall through ... */
+      /* fall through */
 
     default:
       gcc_assert (operation_type == base_type);
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -17917,6 +17917,7 @@ ix86_print_operand (FILE *file, rtx x, i
 #ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
 	  if (ASSEMBLER_DIALECT == ASM_ATT)
 	    putc ('.', file);
+	  gcc_fallthrough ();
 #endif
 
 	case 'C':
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -3832,6 +3832,7 @@ check_pic (int i)
 		      || (GET_CODE (XEXP (op, 0)) == MINUS
 			  && XEXP (XEXP (op, 0), 0) == sparc_got ()
 			  && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST)));
+      /* fallthrough */
     case 2:
     default:
       return 1;
@@ -8371,6 +8372,7 @@ epilogue_renumber (register rtx *where, 
 	return 1;
       if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32)
 	*where = gen_rtx_REG (GET_MODE (*where), OUTGOING_REGNO (REGNO(*where)));
+      /* fallthrough */
     case SCRATCH:
     case CC0:
     case PC:
-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to