diff options
author | Hristian Kirtchev <kirtchev@adacore.com> | 2018-11-14 11:40:47 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-11-14 11:40:47 +0000 |
commit | 640ad9c221fe9bac7bff0d60a8aa094f09538bec (patch) | |
tree | d64b95ae560994460487838cc2f5bf1180dc6eb3 /gcc/tree-vrp.c | |
parent | e1a20c09aac4149f3099cfc313bbfcd6672064bc (diff) | |
download | gcc-640ad9c221fe9bac7bff0d60a8aa094f09538bec.zip gcc-640ad9c221fe9bac7bff0d60a8aa094f09538bec.tar.gz gcc-640ad9c221fe9bac7bff0d60a8aa094f09538bec.tar.bz2 |
[Ada] Limited function violates No_Exception_Propagation
This patch suppresses the generation of raise statements in the context
of build-in-place and elaboration checks for primitives of tagged types
when exceptions cannot be used.
2018-11-14 Hristian Kirtchev <kirtchev@adacore.com>
gcc/ada/
* checks.adb (Install_Primitive_Elaboration_Check): Do not
create the check when exceptions cannot be used.
* exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not raise
Program_Errror when exceptions cannot be used. Analyze the
generated code with all checks suppressed.
* exp_ch7.adb (Build_Finalizer): Remove the declaration of
Exceptions_OK.
(Make_Deep_Array_Body): Remove the declaration of Exceptions_OK.
(Make_Deep_Record_Body): Remove the declaration of
Exceptions_OK.
(Process_Transients_In_Scope): Remove the declaration of
Exceptions_OK.
* exp_util.adb (Exceptions_In_Finalization_OK): Renamed to
Exceptions_OK.
* exp_util.ads (Exceptions_In_Finalization_OK): Renamed to
Exceptions_OK.
gcc/testsuite/
* gnat.dg/bip_exception.adb, gnat.dg/bip_exception.ads,
gnat.dg/bip_exception_pkg.ads: New testcase.
From-SVN: r266115
Diffstat (limited to 'gcc/tree-vrp.c')
0 files changed, 0 insertions, 0 deletions