diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-10-19 12:54:58 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-10-19 12:54:58 +0200 |
commit | 437f8c1ebec7789abe617b29a710f08327e8003b (patch) | |
tree | f03d632e82e86c7949808d54ba85b59adc07b8d1 /gcc/ada/gcc-interface/gigi.h | |
parent | e606088aa9a3e732484cf7b701dc1e59e3bd9f69 (diff) | |
download | gcc-437f8c1ebec7789abe617b29a710f08327e8003b.zip gcc-437f8c1ebec7789abe617b29a710f08327e8003b.tar.gz gcc-437f8c1ebec7789abe617b29a710f08327e8003b.tar.bz2 |
[multiple changes]
2010-10-19 Robert Dewar <dewar@adacore.com>
* sem_eval.adb: Minor reformatting.
2010-10-19 Tristan Gingold <gingold@adacore.com>
* exp_ch4.adb (Expand_N_And_Op, Expand_N_Or_Op, Expand_N_Xor_Op): Call
Expand_Intrinsic_Call if the function is intrinsic.
* exp_intr_adb (Expand_Binary_Operator): Handle VMS case for logical
binary operator on the unsigned_quadword record.
* exp_intr.ads (Expand_Intrinsic_Call): Update comments.
2010-10-19 Geert Bosch <bosch@adacore.com>
* gnat_rm.texi (pragma Float_Representation): Fix typo.
2010-10-19 Arnaud Charlet <charlet@adacore.com>
* switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateE.
* fe.h (Exception_Extra_Info): Declare.
* usage.adb (usage): Add -gnateE doc.
* checks.adb (Install_Null_Excluding_Check): Use better sloc.
* sem_util.adb (Insert_Explicit_Dereference): Ditto.
* gnat_ugn.texi: Document -gnateE switch.
* a-except.adb (Set_Exception_C_Msg): New parameter Column.
* a-except-2005.adb (Set_Exception_C_Msg): New parameter Column.
(Raise_Constraint_Error_Msg): Ditto.
(Image): New helper function.
(Rcheck_00_Ext, Rcheck_05_Ext, Rcheck_12_Ext): New procedure with more
detailed exception information.
Adjust calls to Set_Exception_C_Msg and Raise_Constraint_Error_Msg.
* a-exexda.adb (Set_Exception_C_Msg): New parameter Column.
* opt.ads (Exception_Extra_Info): New flag.
* gcc-interface/utils.c (gnat_raise_decls_ext): New.
* gcc-interface/utils2.c (build_call_raise_range,
build_call_raise_column): New functions.
* gcc-interface/gigi.h (exception_info_kind, gnat_raise_decls_ext,
build_call_raise_range, build_call_raise_column): Declare.
gcc-interface/trans.c (build_raise_check): New function.
(gigi): Initialize gnat_raise_decls_ext.
(gnat_to_gnu): Add initial support for -gnateE switch.
* gcc-interface/Make-lang.in: Update dependencies.
From-SVN: r165696
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index d529e78..8b696a5 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -366,8 +366,19 @@ enum standard_datatypes ADT_all_others_decl, ADT_LAST}; +/* Define kind of exception information associated with raise statements. */ +enum exception_info_kind +{ + /* Simple exception information: file:line. */ + exception_simple, + /* Range exception information: file:line + index, first, last. */ + exception_range, + /* Column exception information: file:line:column. */ + exception_column}; + extern GTY(()) tree gnat_std_decls[(int) ADT_LAST]; extern GTY(()) tree gnat_raise_decls[(int) LAST_REASON_CODE + 1]; +extern GTY(()) tree gnat_raise_decls_ext[(int) LAST_REASON_CODE + 1]; #define longest_float_type_node gnat_std_decls[(int) ADT_longest_float_type] #define except_type_node gnat_std_decls[(int) ADT_except_type] @@ -790,6 +801,16 @@ extern tree build_call_0_expr (tree fundecl); (N_Raise_{Constraint,Storage,Program}_Error). */ extern tree build_call_raise (int msg, Node_Id gnat_node, char kind); +/* Similar to build_call_raise, for an index or range check exception as + determined by MSG, with extra information generated of the form + "INDEX out of range FIRST..LAST". */ +extern tree build_call_raise_range (int msg, Node_Id gnat_node, + tree index, tree first, tree last); + +/* Similar to build_call_raise, with extra information about the column + where the check failed. */ +extern tree build_call_raise_column (int msg, Node_Id gnat_node); + /* Return a CONSTRUCTOR of TYPE whose elements are V. This is not the same as build_constructor in the language-independent tree.c. */ extern tree gnat_build_constructor (tree type, VEC(constructor_elt,gc) *v); |