aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gcc-interface/misc.c')
-rw-r--r--gcc/ada/gcc-interface/misc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index bd6b51a..6a601bb 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -661,8 +661,12 @@ gnat_get_subrange_bounds (const_tree gnu_type, tree *lowval, tree *highval)
{
tree min = TYPE_MIN_VALUE (gnu_type);
tree max = TYPE_MAX_VALUE (gnu_type);
- *lowval = TREE_CONSTANT (min) ? min : TYPE_GCC_MIN_VALUE (gnu_type);
- *highval = TREE_CONSTANT (max) ? max : TYPE_GCC_MAX_VALUE (gnu_type);
+ /* If the bounds aren't constant, use non-representable constant values
+ to get the same effect on debug info without tree sharing issues. */
+ *lowval
+ = TREE_CONSTANT (min) ? min : build_int_cstu (integer_type_node, -1);
+ *highval
+ = TREE_CONSTANT (max) ? max : build_int_cstu (integer_type_node, -1);
}
/* GNU_TYPE is a type. Determine if it should be passed by reference by