diff options
author | Tristan Gingold <gingold@adacore.com> | 2012-05-15 10:17:26 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-05-15 12:17:26 +0200 |
commit | 0c644c99db0e5a83b8106a25e8346c2ecc250297 (patch) | |
tree | 80eaa504f086c6fde09e5e8544c13bac2c29a557 /gcc/ada/gcc-interface/trans.c | |
parent | a2f6dee8a995f8d62609d3d091d0c96c114d610a (diff) | |
download | gcc-0c644c99db0e5a83b8106a25e8346c2ecc250297.zip gcc-0c644c99db0e5a83b8106a25e8346c2ecc250297.tar.gz gcc-0c644c99db0e5a83b8106a25e8346c2ecc250297.tar.bz2 |
fe.h (Get_RT_Exception_Name): Define.
2012-05-15 Tristan Gingold <gingold@adacore.com>
* fe.h (Get_RT_Exception_Name): Define.
* types.ads (RT_Exception_Code): Update comment.
* exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New
procedure to get the name of the rcheck subprograms.
* a-except-2005.adb (Rcheck_xx): Rename.
* a-except.adb Likewise, but also keep the old Rcheck_nn routines
for bootstrap.
* arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check
instead of __gnat_rcheck_10.
* gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name
to create the __gnat_rcheck routines name.
* gcc-interface/Make-lang.in: Update dependencies.
From-SVN: r187517
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index dd1669b..d79cd46 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -702,12 +702,16 @@ gigi (Node_Id gnat_root, int max_gnat_node, int number_name ATTRIBUTE_UNUSED, static tree build_raise_check (int check, enum exception_info_kind kind) { - char name[21]; tree result, ftype; + const char pfx[] = "__gnat_rcheck_"; + + strcpy (Name_Buffer, pfx); + Name_Len = sizeof (pfx) - 1; + Get_RT_Exception_Name (check); if (kind == exception_simple) { - sprintf (name, "__gnat_rcheck_%.2d", check); + Name_Buffer[Name_Len] = 0; ftype = build_function_type_list (void_type_node, build_pointer_type @@ -717,7 +721,9 @@ build_raise_check (int check, enum exception_info_kind kind) else { tree t = (kind == exception_column ? NULL_TREE : integer_type_node); - sprintf (name, "__gnat_rcheck_%.2d_ext", check); + + strcpy (Name_Buffer + Name_Len, "_ext"); + Name_Buffer[Name_Len + 4] = 0; ftype = build_function_type_list (void_type_node, build_pointer_type @@ -727,7 +733,8 @@ build_raise_check (int check, enum exception_info_kind kind) } result - = create_subprog_decl (get_identifier (name), NULL_TREE, ftype, NULL_TREE, + = create_subprog_decl (get_identifier (Name_Buffer), + NULL_TREE, ftype, NULL_TREE, false, true, true, true, NULL, Empty); /* Indicate that it never returns. */ |