aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/checks.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2003-12-17 14:37:04 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2003-12-17 14:37:04 +0100
commit891a6e79d827ff208ff9509e3697fcb4192fc2b3 (patch)
treec88d390281088277a1a339c168d6606e0093cae2 /gcc/ada/checks.adb
parent9684a8405af524cd875abea638b7372fa845434c (diff)
downloadgcc-891a6e79d827ff208ff9509e3697fcb4192fc2b3.zip
gcc-891a6e79d827ff208ff9509e3697fcb4192fc2b3.tar.gz
gcc-891a6e79d827ff208ff9509e3697fcb4192fc2b3.tar.bz2
[multiple changes]
2003-12-17 Ed Falis <falis@gnat.com> * a-elchha.adb (Tailored_Exception_Information): made Info constant to eliminate warning. * a-exextr.adb: Add context clause for Ada.Exceptions.Last_Chance_Handler. 2003-12-17 Sergey Rybin <rybin@act-europe.fr> * cstand.adb (Create_Standard): Change the way how the declaration of the Duration type is created (making it the same way as it is for all the other standard types). 2003-12-17 Robert Dewar <dewar@gnat.com> * s-crtl.ads: Fix header format Change Pure to Preelaborate 2003-12-17 Ed Schonberg <schonberg@gnat.com> * checks.adb (Selected_Length_Checks): Generate an Itype reference for the expression type only if it is declared in the current unit. * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds are universal and already analyzed, as can occur in constrained subcomponents that depend on discriminants, when one constraint is a subtype mark. * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of type Any_Fixed is legal as the argument of a conversion, if only one fixed-point type is in context. 2003-12-17 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r74741
Diffstat (limited to 'gcc/ada/checks.adb')
-rw-r--r--gcc/ada/checks.adb5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb
index 0264974..2adb5f7 100644
--- a/gcc/ada/checks.adb
+++ b/gcc/ada/checks.adb
@@ -4778,13 +4778,16 @@ package body Checks is
-- At the library level, we need to ensure that the
-- type of the object is elaborated before the check
- -- itself is emitted.
+ -- itself is emitted. This is only done if the object
+ -- is in the current compilation unit, otherwise the
+ -- type is frozen and elaborated in its unit.
if Is_Itype (Exptyp)
and then
Ekind (Cunit_Entity (Current_Sem_Unit)) = E_Package
and then
not In_Package_Body (Cunit_Entity (Current_Sem_Unit))
+ and then In_Open_Scopes (Scope (Exptyp))
then
Ref_Node := Make_Itype_Reference (Sloc (Ck_Node));
Set_Itype (Ref_Node, Exptyp);