From: Eric Botcazou <[email protected]>
It is very confusing for the user because it does not make any reference
to the source code but only to details of the underlying implementation.
gcc/ada/ChangeLog:
* gcc-interface/trans.cc (Raise_Error_to_gnu) <CE_Invalid_Data>:
Do not the generate range information if the value is a call to a
Rep_To_Pos function.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/gcc-interface/trans.cc | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc
index ebcf2cdf8fe..a073b2d94f1 100644
--- a/gcc/ada/gcc-interface/trans.cc
+++ b/gcc/ada/gcc-interface/trans.cc
@@ -6124,7 +6124,12 @@ Raise_Error_to_gnu (Node_Id gnat_node, tree
*gnu_result_type_p)
gnu_index = convert (gnu_type, gnu_index);
}
+ /* Do not print the range information for an enumeration type with
+ holes since it is meaningless. */
if (with_extra_info
+ && !(Nkind (gnat_index) == N_Function_Call
+ && Is_Entity_Name (Name (gnat_index))
+ && Is_Rep_To_Pos (Entity (Name (gnat_index))))
&& Known_Esize (gnat_type)
&& UI_To_Int (Esize (gnat_type)) <= 32)
gnu_result
--
2.43.0