[Ada] Crash on if expression inside declare expression
[gcc.git] / gcc / dominance.h
index 0c83ba56892b51455bacc8e684fdd90a12b968ba..179cc60aa08ae14f01a08e0292b7d083b08901e5 100644 (file)
@@ -1,5 +1,5 @@
 /* Calculate (post)dominators header file.
-   Copyright (C) 2014 Free Software Foundation, Inc.
+   Copyright (C) 2014-2020 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -36,8 +36,13 @@ enum dom_state
 };
 
 extern void calculate_dominance_info (enum cdi_direction);
+extern void calculate_dominance_info_for_region (enum cdi_direction,
+                                                vec<basic_block>);
 extern void free_dominance_info (function *, enum cdi_direction);
 extern void free_dominance_info (enum cdi_direction);
+extern void free_dominance_info_for_region (function *,
+                                           enum cdi_direction,
+                                           vec<basic_block>);
 extern basic_block get_immediate_dominator (enum cdi_direction, basic_block);
 extern void set_immediate_dominator (enum cdi_direction, basic_block,
                                     basic_block);
@@ -60,6 +65,17 @@ extern bool dominated_by_p (enum cdi_direction, const_basic_block,
 unsigned bb_dom_dfs_in (enum cdi_direction, basic_block);
 unsigned bb_dom_dfs_out (enum cdi_direction, basic_block);
 extern void verify_dominators (enum cdi_direction);
+
+/* Verify invariants of computed dominance information, if internal consistency
+   checks are enabled.  */
+
+static inline void
+checking_verify_dominators (cdi_direction dir)
+{
+  if (flag_checking)
+    verify_dominators (dir);
+}
+
 basic_block recompute_dominator (enum cdi_direction, basic_block);
 extern void iterate_fix_dominators (enum cdi_direction,
                                    vec<basic_block> , bool);