+static void
+check_seenlabel ()
+{
+ /* If this is the first label, warn if any insns have been emitted. */
+ if (case_stack->data.case_stmt.line_number_status >= 0)
+ {
+ rtx insn;
+
+ restore_line_number_status
+ (case_stack->data.case_stmt.line_number_status);
+ case_stack->data.case_stmt.line_number_status = -1;
+
+ for (insn = case_stack->data.case_stmt.start;
+ insn;
+ insn = NEXT_INSN (insn))
+ {
+ if (GET_CODE (insn) == CODE_LABEL)
+ break;
+ if (GET_CODE (insn) != NOTE
+ && (GET_CODE (insn) != INSN || GET_CODE (PATTERN (insn)) != USE))
+ {
+ do
+ insn = PREV_INSN (insn);
+ while (GET_CODE (insn) != NOTE || NOTE_LINE_NUMBER (insn) < 0);
+
+ warning_with_file_and_line (NOTE_SOURCE_FILE(insn),
+ NOTE_LINE_NUMBER(insn),
+ "unreachable code at beginning of %s",
+ case_stack->data.case_stmt.printname);
+ break;
+ }
+ }
+ }
+}
+