diff --git a/src/microcode/interp.c b/src/microcode/interp.c
index 9ee54de36..305dd5524 100644
--- a/src/microcode/interp.c
+++ b/src/microcode/interp.c
@@ -827,7 +827,7 @@ Interpret (void)
     internal_apply_val:
 
       (APPLY_FRAME_PROCEDURE ()) = GET_VAL;
-      /* fall through */
+      __attribute__ ((fallthrough));
 
     case RC_INTERNAL_APPLY:
     internal_apply:
diff --git a/src/microcode/syntax.c b/src/microcode/syntax.c
index b42bac46a..fd53cc205 100644
--- a/src/microcode/syntax.c
+++ b/src/microcode/syntax.c
@@ -507,7 +507,7 @@ DEFINE_PRIMITIVE ("SCAN-LIST-FORWARD", Prim_scan_list_forward, 7, 7, 0)
 	case syntaxcode_charquote:
 	  LOSE_IF_RIGHT_END (start);
 	  MOVE_RIGHT (start);
-	  /* fall through */
+	  __attribute__ ((fallthrough));
 
 	case syntaxcode_word:
 	case syntaxcode_symbol:
@@ -522,7 +522,7 @@ DEFINE_PRIMITIVE ("SCAN-LIST-FORWARD", Prim_scan_list_forward, 7, 7, 0)
 		case syntaxcode_charquote:
 		  MOVE_RIGHT (start);
 		  LOSE_IF_RIGHT_END (start);
-		  /* fall through */
+		  __attribute__ ((fallthrough));
 
 		case syntaxcode_word:
 		case syntaxcode_symbol:
@@ -978,7 +978,7 @@ DEFINE_PRIMITIVE ("SCAN-SEXPS-FORWARD", Prim_scan_sexps_forward, 7, 7, 0)
 		      quoted = true;
 		      DONE_IF (true);
 		    }
-		  /* fall through */
+		  __attribute__ ((fallthrough));
 
 		case syntaxcode_word:
 		case syntaxcode_symbol:
diff --git a/src/microcode/ux.c b/src/microcode/ux.c
index 9498a8369..46e4703bb 100644
--- a/src/microcode/ux.c
+++ b/src/microcode/ux.c
@@ -58,7 +58,7 @@ UX_prim_check_fd_errno (enum syscall_names name)
 	  REQUEST_GC (0);
 	  deliver_pending_interrupts ();
 	}
-      /* Fall through */
+      __attribute__ ((fallthrough));
 
     default:
       error_system_call (errno, name);
diff --git a/src/microcode/uxsig.c b/src/microcode/uxsig.c
index dbde9a46f..1ab7b38ee 100644
--- a/src/microcode/uxsig.c
+++ b/src/microcode/uxsig.c
@@ -856,7 +856,7 @@ interactive_interrupt_handler (SIGCONTEXT_T * scp)
 	    fprintf (stderr, "Problems reading keyboard input -- Exitting.\n");
 	    termination_eof ();
 	  }
-	  /* fall through */
+	  __attribute__ ((fallthrough));
 	default:
 	  if (!option_emacs_subprocess)
 	    print_interactive_help ();
@@ -987,7 +987,7 @@ describe_sighnd (int signo, unsigned char c)
 	    case dfl_terminate: goto describe_terminate;
 	    }
       }
-      /* fall through */
+      __attribute__ ((fallthrough));
     default:
       fputs ("When typed, this character will have an unknown effect.\n",
 	     stdout);
@@ -1084,6 +1084,7 @@ reset_query (SIGCONTEXT_T * scp)
 	  CLEAR_CRITICAL_SECTION_HOOK ();
 	  EXIT_CRITICAL_SECTION ({});
 	  hard_reset (scp);
+          __attribute__ ((fallthrough));
 	case 'P':
 	default:
 	  return;
