summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch6.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-01 13:29:28 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-01 13:29:28 +0000
commit9988dae3912ad46db3f81b489a1417c6d294fde4 (patch)
treec0ac6a55329023fb31e9b9e80f35357a07004365 /gcc/ada/exp_ch6.adb
parent1b50d7560a9c09ef6a6123511b4acdcd8a86d994 (diff)
downloadgcc-9988dae3912ad46db3f81b489a1417c6d294fde4.tar.gz
2003-12-01 Nicolas Setton <setton@act-europe.fr>
* a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point, so that the debugger can reliably access the value of the parameter, and therefore is able to display the exception name when an exception breakpoint is reached. 2003-12-01 Thomas Quinot <quinot@act-europe.fr> * fmap.adb: Fix typo in warning message. * g-socket.ads, g-socket.adb: Make Free a visible instance of Ada.Unchecked_Deallocation (no need to wrap it in a subprogram). 2003-12-01 Vincent Celier <celier@gnat.com> * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if ther is no Afile. (Build_Library): Get the switches only if Default_Switches is declared in package Binder. 2003-12-01 Ed Schonberg <schonberg@gnat.com> * exp_ch6.adb (Expand_Actuals): When applying validity checks to actuals that are indexed components, reanalyze actual to ensure that packed array references are properly expanded. * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for attempted assignment to a discriminant. 2003-12-01 Robert Dewar <dewar@gnat.com> * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor reformatting. * switch-c.adb: Minor reformatting of comments 2003-12-01 Arnaud Charlet <charlet@act-europe.fr> * Makefile.in: Clean ups. 2003-12-01 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74100 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch6.adb')
-rw-r--r--gcc/ada/exp_ch6.adb15
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index b0023aa1f44..809eb0b9b2c 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -547,8 +547,9 @@ package body Exp_Ch6 is
Var := Make_Var (Expression (Actual));
- Crep := not Same_Representation
- (Etype (Formal), Etype (Expression (Actual)));
+ Crep := not Same_Representation
+ (Etype (Formal), Etype (Expression (Actual)));
+
else
V_Typ := Etype (Actual);
Var := Make_Var (Actual);
@@ -1528,8 +1529,16 @@ package body Exp_Ch6 is
if Validity_Checks_On then
if Ekind (Formal) = E_In_Parameter
and then Validity_Check_In_Params
- and then Is_Entity_Name (Actual)
then
+ -- If the actual is an indexed component of a packed
+ -- type, it has not been expanded yet. It will be
+ -- copied in the validity code that follows, and has
+ -- to be expanded appropriately, so reanalyze it.
+
+ if Nkind (Actual) = N_Indexed_Component then
+ Set_Analyzed (Actual, False);
+ end if;
+
Ensure_Valid (Actual);
elsif Ekind (Formal) = E_In_Out_Parameter