diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f2762580970f71deae668b85d61f40abed471598..a9a861eb5e8c63baea551ccc8a6d051faf008bcf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
+
+	* final.c (leaf_function_p): Check we are not in a sequence.
+
 2017-05-18  Martin Liska  <mliska@suse.cz>
 
 	* cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
diff --git a/gcc/final.c b/gcc/final.c
index 820162b2d28d734901375017cf0c7a3095e8903e..e61b78b0a915df748fcf3d73cd46db855cf7a1c6 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -4309,6 +4309,9 @@ leaf_function_p (void)
 {
   rtx_insn *insn;
 
+  /* Ensure we walk the entire function body.  */
+  gcc_assert (!in_sequence_p ());
+
   /* Some back-ends (e.g. s390) want leaf functions to stay leaf
      functions even if they call mcount.  */
   if (crtl->profile && !targetm.keep_leaf_when_profiled ())