Fortran] Use proper type for hidden is-present argument
[gcc.git] / gcc / gimple-iterator.c
index 1e87825a20f8830010f6be4622f5355e3d8f237c..e0e4e123678a724c89db5cffda0e4744f9748d76 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterator routines for GIMPLE statements.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2019 Free Software Foundation, Inc.
    Contributed by Aldy Hernandez  <aldy@quesejoda.com>
 
 This file is part of GCC.
@@ -568,6 +568,10 @@ gsi_remove (gimple_stmt_iterator *i, bool remove_permanently)
 
   if (remove_permanently)
     {
+      if (gimple_debug_nonbind_marker_p (stmt))
+       /* We don't need this to be exact, but try to keep it at least
+          close.  */
+       cfun->debug_marker_count--;
       require_eh_edge_purge = remove_stmt_from_eh_lp (stmt);
       gimple_remove_stmt_histograms (cfun, stmt);
     }
@@ -615,6 +619,18 @@ gsi_for_stmt (gimple *stmt)
   return i;
 }
 
+/* Get an iterator for STMT, which is known to belong to SEQ.  This is
+   equivalent to starting at the beginning of SEQ and searching forward
+   until STMT is found.  */
+
+gimple_stmt_iterator
+gsi_for_stmt (gimple *stmt, gimple_seq *seq)
+{
+  gimple_stmt_iterator i = gsi_start_1 (seq);
+  i.ptr = stmt;
+  return i;
+}
+
 /* Finds iterator for PHI.  */
 
 gphi_iterator
@@ -739,13 +755,9 @@ gimple_find_edge_insert_loc (edge e, gimple_stmt_iterator *gsi,
       if (gsi_end_p (*gsi))
        return true;
 
-      /* Make sure we insert after any leading labels.  We have to
-        skip debug stmts before or among them, though.  We didn't
-        have to skip debug stmts after the last label, but it
-        shouldn't hurt if we do.  */
+      /* Make sure we insert after any leading labels.  */
       tmp = gsi_stmt (*gsi);
-      while (gimple_code (tmp) == GIMPLE_LABEL
-            || is_gimple_debug (tmp))
+      while (gimple_code (tmp) == GIMPLE_LABEL)
        {
          gsi_next (gsi);
          if (gsi_end_p (*gsi))