diff mbox

[3/9] ENABLE_CHECKING refactoring: Java and Ada

Message ID 561307FE.4010100@gmail.com
State New
Headers show

Commit Message

Mikhail Maltsev Oct. 5, 2015, 11:30 p.m. UTC
gcc/java/ChangeLog:

2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>

	* decl.c (java_mark_decl_local): Use flag_checking instead of
	ENABLE_CHECKING.


gcc/ada/ChangeLog:

2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Use gcc_checking_assert.
	* gcc-interface/trans.c (assoc_to_constructor): Use flag_checking.
	* gcc-interface/utils.c (relate_alias_sets): Likewise.
	* gcc-interface/utils2.c (build_binary_op, build_unary_op): Use
	gcc_checking_assert

Comments

Jeff Law Oct. 22, 2015, 7:22 p.m. UTC | #1
On 10/05/2015 05:30 PM, Mikhail Maltsev wrote:
> gcc/java/ChangeLog:
>
> 2015-10-05  Mikhail Maltsev<maltsevm@gmail.com>
>
> 	* decl.c (java_mark_decl_local): Use flag_checking instead of
> 	ENABLE_CHECKING.
>
>
> gcc/ada/ChangeLog:
>
> 2015-10-05  Mikhail Maltsev<maltsevm@gmail.com>
>
> 	* gcc-interface/decl.c (gnat_to_gnu_entity): Use gcc_checking_assert.
> 	* gcc-interface/trans.c (assoc_to_constructor): Use flag_checking.
> 	* gcc-interface/utils.c (relate_alias_sets): Likewise.
> 	* gcc-interface/utils2.c (build_binary_op, build_unary_op): Use
> 	gcc_checking_assert
>
>
>
> 0003-Ada-and-Java-FE-s.patch
>
>
>  From e8de7d2dc24cff85b6c1e44157dad23c85e435e1 Mon Sep 17 00:00:00 2001
> From: Mikhail Maltsev<maltsevm@gmail.com>
> Date: Sun, 20 Sep 2015 05:06:01 +0300
> Subject: [PATCH 3/9] Ada and Java FE's
>
> ---
>   gcc/ada/gcc-interface/decl.c   |  4 +---
>   gcc/ada/gcc-interface/trans.c  | 11 ++++++-----
>   gcc/ada/gcc-interface/utils.c  |  4 +---
>   gcc/ada/gcc-interface/utils2.c | 20 ++++++++------------
>   gcc/java/decl.c                |  4 +---
>   5 files changed, 17 insertions(+), 26 deletions(-)
>
> diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
> index 0f3087d..7906495 100644
> --- a/gcc/ada/gcc-interface/utils.c
> +++ b/gcc/ada/gcc-interface/utils.c
> @@ -1499,9 +1499,7 @@ relate_alias_sets (tree gnu_new_type, tree gnu_old_type, enum alias_set_op op)
>         /* The alias set shouldn't be copied between array types with different
>   	 aliasing settings because this can break the aliasing relationship
>   	 between the array type and its element type.  */
> -#ifndef ENABLE_CHECKING
> -      if (flag_strict_aliasing)
> -#endif
> +      if (flag_checking || flag_strict_aliasing)
>   	gcc_assert (!(TREE_CODE (gnu_new_type) == ARRAY_TYPE
>   		      && TREE_CODE (gnu_old_type) == ARRAY_TYPE
>   		      && TYPE_NONALIASED_COMPONENT (gnu_new_type)
I wonder who wrote that gem initially.  I don't like conditional 
compilation, I don't like the original code here even more.  Having the 
IF, but not the true/false arms conditionally compiled is just gross.

Having said that, I hope it wasn't me that wrote the code :-)


I've installed this on the trunk.

jeff
diff mbox

Patch

From e8de7d2dc24cff85b6c1e44157dad23c85e435e1 Mon Sep 17 00:00:00 2001
From: Mikhail Maltsev <maltsevm@gmail.com>
Date: Sun, 20 Sep 2015 05:06:01 +0300
Subject: [PATCH 3/9] Ada and Java FE's

---
 gcc/ada/gcc-interface/decl.c   |  4 +---
 gcc/ada/gcc-interface/trans.c  | 11 ++++++-----
 gcc/ada/gcc-interface/utils.c  |  4 +---
 gcc/ada/gcc-interface/utils2.c | 20 ++++++++------------
 gcc/java/decl.c                |  4 +---
 5 files changed, 17 insertions(+), 26 deletions(-)

diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index ca36ce5..3922bb8 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -2710,10 +2710,8 @@  gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
 
 		      TYPE_HAS_ACTUAL_BOUNDS_P (gnu_inner) = 1;
 
-#ifdef ENABLE_CHECKING
 		      /* Check for other cases of overloading.  */
-		      gcc_assert (!TYPE_ACTUAL_BOUNDS (gnu_inner));
-#endif
+		      gcc_checking_assert (!TYPE_ACTUAL_BOUNDS (gnu_inner));
 		    }
 
 		  for (gnat_index = First_Index (gnat_entity);
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index 3252ea2..c5f560f 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -9411,11 +9411,12 @@  assoc_to_constructor (Entity_Id gnat_entity, Node_Id gnat_assoc, tree gnu_type)
 
   gnu_result = extract_values (gnu_list, gnu_type);
 
-#ifdef ENABLE_CHECKING
-  /* Verify that every entry in GNU_LIST was used.  */
-  for (; gnu_list; gnu_list = TREE_CHAIN (gnu_list))
-    gcc_assert (TREE_ADDRESSABLE (gnu_list));
-#endif
+  if (flag_checking)
+    {
+      /* Verify that every entry in GNU_LIST was used.  */
+      for (; gnu_list; gnu_list = TREE_CHAIN (gnu_list))
+	gcc_assert (TREE_ADDRESSABLE (gnu_list));
+    }
 
   return gnu_result;
 }
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 0f3087d..7906495 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -1499,9 +1499,7 @@  relate_alias_sets (tree gnu_new_type, tree gnu_old_type, enum alias_set_op op)
       /* The alias set shouldn't be copied between array types with different
 	 aliasing settings because this can break the aliasing relationship
 	 between the array type and its element type.  */
-#ifndef ENABLE_CHECKING
-      if (flag_strict_aliasing)
-#endif
+      if (flag_checking || flag_strict_aliasing)
 	gcc_assert (!(TREE_CODE (gnu_new_type) == ARRAY_TYPE
 		      && TREE_CODE (gnu_old_type) == ARRAY_TYPE
 		      && TYPE_NONALIASED_COMPONENT (gnu_new_type)
diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c
index 70737a9..13421b4 100644
--- a/gcc/ada/gcc-interface/utils2.c
+++ b/gcc/ada/gcc-interface/utils2.c
@@ -854,9 +854,8 @@  build_binary_op (enum tree_code op_code, tree result_type,
     {
     case INIT_EXPR:
     case MODIFY_EXPR:
-#ifdef ENABLE_CHECKING
-      gcc_assert (result_type == NULL_TREE);
-#endif
+      gcc_checking_assert (result_type == NULL_TREE);
+
       /* If there were integral or pointer conversions on the LHS, remove
 	 them; we'll be putting them back below if needed.  Likewise for
 	 conversions between array and record types, except for justified
@@ -1039,9 +1038,8 @@  build_binary_op (enum tree_code op_code, tree result_type,
     case TRUTH_AND_EXPR:
     case TRUTH_OR_EXPR:
     case TRUTH_XOR_EXPR:
-#ifdef ENABLE_CHECKING
-      gcc_assert (TREE_CODE (get_base_type (result_type)) == BOOLEAN_TYPE);
-#endif
+      gcc_checking_assert (TREE_CODE (
+				get_base_type (result_type)) == BOOLEAN_TYPE);
       operation_type = left_base_type;
       left_operand = convert (operation_type, left_operand);
       right_operand = convert (operation_type, right_operand);
@@ -1053,9 +1051,8 @@  build_binary_op (enum tree_code op_code, tree result_type,
     case LT_EXPR:
     case EQ_EXPR:
     case NE_EXPR:
-#ifdef ENABLE_CHECKING
-      gcc_assert (TREE_CODE (get_base_type (result_type)) == BOOLEAN_TYPE);
-#endif
+      gcc_checking_assert (TREE_CODE (
+				get_base_type (result_type)) == BOOLEAN_TYPE);
       /* If either operand is a NULL_EXPR, just return a new one.  */
       if (TREE_CODE (left_operand) == NULL_EXPR)
 	return build2 (op_code, result_type,
@@ -1335,9 +1332,8 @@  build_unary_op (enum tree_code op_code, tree result_type, tree operand)
       break;
 
     case TRUTH_NOT_EXPR:
-#ifdef ENABLE_CHECKING
-      gcc_assert (TREE_CODE (get_base_type (result_type)) == BOOLEAN_TYPE);
-#endif
+      gcc_checking_assert (TREE_CODE (
+				get_base_type (result_type)) == BOOLEAN_TYPE);
       result = invert_truthvalue_loc (EXPR_LOCATION (operand), operand);
       /* When not optimizing, fold the result as invert_truthvalue_loc
 	 doesn't fold the result of comparisons.  This is intended to undo
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index c035fe0..2b33621 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -1905,14 +1905,12 @@  java_mark_decl_local (tree decl)
 {
   DECL_EXTERNAL (decl) = 0;
 
-#ifdef ENABLE_CHECKING
   /* Double check that we didn't pass the function to the callgraph early.  */
-  if (TREE_CODE (decl) == FUNCTION_DECL)
+  if (flag_checking && TREE_CODE (decl) == FUNCTION_DECL)
     {
       struct cgraph_node *node = cgraph_node::get (decl);
       gcc_assert (!node || !node->definition);
     }
-#endif
   gcc_assert (!DECL_RTL_SET_P (decl));
 }
 
-- 
2.1.4