aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/trans.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r--gcc/ada/gcc-interface/trans.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index eda1b3a..143d214 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -627,8 +627,16 @@ gigi (Node_Id gnat_root,
main_identifier_node = get_identifier ("main");
- /* Install the builtins we might need, either internally or as
- user available facilities for Intrinsic imports. */
+ /* If we are using the GCC exception mechanism, let GCC know. */
+ if (Back_End_Exceptions ())
+ gnat_init_gcc_eh ();
+
+ /* Initialize the GCC support for FP operations. */
+ gnat_init_gcc_fp ();
+
+ /* Install the builtins we might need, either internally or as user-available
+ facilities for Intrinsic imports. Note that this must be done after the
+ GCC exception mechanism is initialized. */
gnat_install_builtins ();
vec_safe_push (gnu_except_ptr_stack, NULL_TREE);
@@ -641,13 +649,6 @@ gigi (Node_Id gnat_root,
targetm.asm_out.output_ident
(TREE_STRING_POINTER (gnat_to_gnu (Ident_String (Main_Unit))));
- /* If we are using the GCC exception mechanism, let GCC know. */
- if (Back_End_Exceptions ())
- gnat_init_gcc_eh ();
-
- /* Initialize the GCC support for FP operations. */
- gnat_init_gcc_fp ();
-
/* Force -fno-strict-aliasing if the configuration pragma was seen. */
if (No_Strict_Aliasing_CP)
flag_strict_aliasing = 0;