aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem.adb
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2005-06-16 10:28:59 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2005-06-16 10:28:59 +0200
commit6d15829192baaacccee6d22adbb2e38857574c12 (patch)
treeab034f8a1eac598348a30bb004f97397daaf8f2f /gcc/ada/sem.adb
parentb497b46043b4679353aecf4be76266686813bdf3 (diff)
downloadgcc-6d15829192baaacccee6d22adbb2e38857574c12.zip
gcc-6d15829192baaacccee6d22adbb2e38857574c12.tar.gz
gcc-6d15829192baaacccee6d22adbb2e38857574c12.tar.bz2
system-unixware.ads, [...]: Minor comment update for AI-362 (unit is Pure).
2005-06-14 Robert Dewar <dewar@adacore.com> * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads, system-os2.ads, system-interix.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, system-vms_64.ads, system-vxworks-alpha.ads: Minor comment update for AI-362 (unit is Pure). * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions Add pragma Pure_05 for AI-362 Make remaining conversion functions obsolescent in Ada 95 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode Add entries for a-wichun and a-zchuni Add a-widcha a-zchara for AI-395 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha Add entries for a-wichun.o and a-zchuni.o Entries for a-widcha.o and a-zchara.o Add entry for a-chacon.o * a-ztenau.adb: Add with of Ada.Characters.Conversions * a-chacon.ads, a-chacon.adb: New files. * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow categorization violations. * a-strmap.ads: Add pragma Pure_05 for AI-362 * a-strmap.ads: Add note on implicit categorization for AI-362 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362 * par-prag.adb: Dummy entry for pragma Persistent_BSS Set Ada_Version_Explicit, for implementation of AI-362 Add processing for pragma Pure_05 and Preelaborate_05 Add entry for Assertion_Policy pragma * sem.adb: Make sure predefined units are compiled with GNAT_Mode true when needed for proper processing of categorization stuff * sem_cat.adb: For several cases, make errors in preealborate units warnings, instead of errors, if GNAT_Mode is set. For AI-362. * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in preelaborate unit is now warning if in GNAT mode * s-stoele.ads: Document AI-362 for pragma preelaborate From-SVN: r101016
Diffstat (limited to 'gcc/ada/sem.adb')
-rw-r--r--gcc/ada/sem.adb20
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/ada/sem.adb b/gcc/ada/sem.adb
index e242bc9..bbd0d2f 100644
--- a/gcc/ada/sem.adb
+++ b/gcc/ada/sem.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2004, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -1218,7 +1218,7 @@ package body Sem is
S_New_Nodes_OK : constant Int := New_Nodes_OK;
S_Outer_Gen_Scope : constant Entity_Id := Outer_Generic_Scope;
S_Sem_Unit : constant Unit_Number_Type := Current_Sem_Unit;
-
+ S_GNAT_Mode : constant Boolean := GNAT_Mode;
Generic_Main : constant Boolean :=
Nkind (Unit (Cunit (Main_Unit)))
in N_Generic_Declaration;
@@ -1270,6 +1270,21 @@ package body Sem is
Compiler_State := Analyzing;
Current_Sem_Unit := Get_Cunit_Unit_Number (Comp_Unit);
+ -- Compile predefined units with GNAT_Mode set to True, to properly
+ -- process the categorization stuff. However, do not set set GNAT_Mode
+ -- to True for the renamings units (Text_IO, IO_Exceptions, Direct_IO,
+ -- Sequential_IO) as this would prevent pragma System_Extend to be
+ -- taken into account, for example when Text_IO is renaming DEC.Text_IO.
+
+ -- Cleaner might be to do the kludge at the point of excluding the
+ -- pragma (do not exclude for renamings ???)
+
+ GNAT_Mode :=
+ GNAT_Mode
+ or else Is_Predefined_File_Name
+ (Unit_File_Name (Current_Sem_Unit),
+ Renamings_Included => False);
+
if Generic_Main then
Expander_Mode_Save_And_Set (False);
else
@@ -1315,6 +1330,7 @@ package body Sem is
Inside_A_Generic := S_Inside_A_Generic;
New_Nodes_OK := S_New_Nodes_OK;
Outer_Generic_Scope := S_Outer_Gen_Scope;
+ GNAT_Mode := S_GNAT_Mode;
Restore_Opt_Config_Switches (Save_Config_Switches);
Expander_Mode_Restore;