From 9fc91982f25c892710a0a8a00ab9d69a30481285 Mon Sep 17 00:00:00 2001 From: Jerome Lambourg Date: Mon, 14 Jun 2010 15:01:29 +0000 Subject: exp_ch11.adb (Expand_N_Raise_Statement): Make sure that the explicit raise of CE... 2010-06-14 Jerome Lambourg * exp_ch11.adb (Expand_N_Raise_Statement): Make sure that the explicit raise of CE, SE and PE have the reason correctly set and are properly expanded before stopping the expansions of .NET/JVM exceptions. From-SVN: r160747 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/exp_ch11.adb | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 78ebd92..8f28a3c 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2010-06-14 Jerome Lambourg + + * exp_ch11.adb (Expand_N_Raise_Statement): Make sure that the explicit + raise of CE, SE and PE have the reason correctly set and are properly + expanded before stopping the expansions of .NET/JVM exceptions. + 2010-06-14 Robert Dewar * opt.ads (Check_Policy_List): Add some clarifying comments diff --git a/gcc/ada/exp_ch11.adb b/gcc/ada/exp_ch11.adb index 21f878b..3978e94 100644 --- a/gcc/ada/exp_ch11.adb +++ b/gcc/ada/exp_ch11.adb @@ -1516,15 +1516,6 @@ package body Exp_Ch11 is -- Remaining processing is for the case where no string expression -- is present. - -- There is no expansion needed for statement "raise ;" when - -- compiling for the JVM since the JVM has a built-in exception - -- mechanism. However we need to keep the expansion for "raise;" - -- statements. See 4jexcept.ads for details. - - if Present (Name (N)) and then VM_Target /= No_VM then - return; - end if; - -- Don't expand a raise statement that does not come from source -- if we have already had configurable run-time violations, since -- most likely it will be junk cascaded nonsense. @@ -1564,6 +1555,15 @@ package body Exp_Ch11 is end if; end if; + -- There is no expansion needed for statement "raise ;" when + -- compiling for the JVM since the JVM has a built-in exception + -- mechanism. However we need to keep the expansion for "raise;" + -- statements. See 4jexcept.ads for details. + + if Present (Name (N)) and then VM_Target /= No_VM then + return; + end if; + -- Case of name present, in this case we expand raise name to -- Raise_Exception (name'Identity, location_string); -- cgit v1.1