exp_ch11.adb (Expand_N_Raise_Statement): Make sure that the explicit raise of CE...

2010-06-14  Jerome Lambourg  <lambourg@adacore.com>

	* 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
This commit is contained in:
Jerome Lambourg 2010-06-14 15:01:29 +00:00 committed by Arnaud Charlet
parent 66de78a39f
commit 9fc91982f2
2 changed files with 15 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2010-06-14 Jerome Lambourg <lambourg@adacore.com>
* 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 <dewar@adacore.com>
* opt.ads (Check_Policy_List): Add some clarifying comments

View File

@ -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 <exception>;" 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 <exception>;" 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);