[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 12 Apr 2013 12:55:34 +0000 (14:55 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 12 Apr 2013 12:55:34 +0000 (14:55 +0200)
2013-04-12  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications):
Insert the corresponding pragma for aspect Abstract_State at
the top of the visible declarations of the related package.
Previously this was only done when the package is a compilation
unit.

2013-04-12  Arnaud Charlet  <charlet@adacore.com>

* gnat_ugn.texi: Further menu clean ups.
* sem_prag.adb, opt.ads: Minor reformatting.
* sem_util.ads: Minor comment fix.

From-SVN: r197901

gcc/ada/ChangeLog
gcc/ada/gnat_ugn.texi
gcc/ada/opt.ads
gcc/ada/sem_ch13.adb
gcc/ada/sem_prag.adb
gcc/ada/sem_util.ads

index 9dc6062d466934861fdda4d4e2da6aa1e449f1be..c19dd7fe27a42be9e3d5428975d4e2a2141a1107 100644 (file)
@@ -1,3 +1,17 @@
+2013-04-12  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Specifications):
+       Insert the corresponding pragma for aspect Abstract_State at
+       the top of the visible declarations of the related package.
+       Previously this was only done when the package is a compilation
+       unit.
+
+2013-04-12  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnat_ugn.texi: Further menu clean ups.
+       * sem_prag.adb, opt.ads: Minor reformatting.
+       * sem_util.ads: Minor comment fix.
+
 2013-04-12  Hristian Kirtchev  <kirtchev@adacore.com>
 
        * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect
index 8d46f70bde88b7560259b9378f812db63f22bbe2..e1cd61abc4a18420856c2ae7e4a62af6e58befc2 100644 (file)
@@ -216,347 +216,6 @@ AdaCore@*
 * Mac OS Topics::
 * GNU Free Documentation License::
 * Index::
-
- --- Detailed Contents ---
-
-About This Guide
-* What This Guide Contains::
-* What You Should Know before Reading This Guide::
-* Related Information::
-* Conventions::
-
-Getting Started with GNAT
-* Running GNAT::
-* Running a Simple Ada Program::
-* Running a Program with Multiple Units::
-* Using the gnatmake Utility::
-@ifset vms
-* Editing with Emacs::
-@end ifset
-@ifclear vms
-* Introduction to GPS::
-@end ifclear
-
-The GNAT Compilation Model
-* Source Representation::
-* Foreign Language Representation::
-* File Naming Rules::
-* Using Other File Names::
-* Alternative File Naming Schemes::
-* Generating Object Files::
-* Source Dependencies::
-* The Ada Library Information Files::
-* Binding an Ada Program::
-* Mixed Language Programming::
-@ifclear vms
-* Building Mixed Ada & C++ Programs::
-* Comparison between GNAT and C/C++ Compilation Models::
-@end ifclear
-* Comparison between GNAT and Conventional Ada Library Models::
-@ifset vms
-* Placement of temporary files::
-@end ifset
-
-Compiling with gcc
-* Compiling Programs::
-* Switches for gcc::
-* Search Paths and the Run-Time Library (RTL)::
-* Order of Compilation Issues::
-* Examples::
-
-Binding with gnatbind
-* Running gnatbind::
-* Switches for gnatbind::
-* Command-Line Access::
-* Search Paths for gnatbind::
-* Examples of gnatbind Usage::
-
-Linking with gnatlink
-* Running gnatlink::
-* Switches for gnatlink::
-
-The GNAT Make Program gnatmake
-* Running gnatmake::
-* Switches for gnatmake::
-* Mode Switches for gnatmake::
-* Notes on the Command Line::
-* How gnatmake Works::
-* Examples of gnatmake Usage::
-
-Improving Performance
-* Performance Considerations::
-* Text_IO Suggestions::
-* Reducing Size of Ada Executables with gnatelim::
-* Reducing Size of Executables with unused subprogram/data elimination::
-
-Renaming Files with gnatchop
-* Handling Files with Multiple Units::
-* Operating gnatchop in Compilation Mode::
-* Command Line for gnatchop::
-* Switches for gnatchop::
-* Examples of gnatchop Usage::
-
-Configuration Pragmas
-* Handling of Configuration Pragmas::
-* The Configuration Pragmas Files::
-
-Handling Arbitrary File Naming Conventions with gnatname
-* Arbitrary File Naming Conventions::
-* Running gnatname::
-* Switches for gnatname::
-* Examples of gnatname Usage::
-
-GNAT Project Manager
-* Introduction::
-* Building With Projects::
-* Organizing Projects into Subsystems::
-* Scenarios in Projects::
-* Library Projects::
-* Project Extension::
-* Aggregate Projects::
-* Aggregate Library Projects::
-* Project File Reference::
-
-Tools Supporting Project Files
-* gnatmake and Project Files::
-* The GNAT Driver and Project Files::
-
-The Cross-Referencing Tools gnatxref and gnatfind
-* Switches for gnatxref::
-* Switches for gnatfind::
-* Project Files for gnatxref and gnatfind::
-* Regular Expressions in gnatfind and gnatxref::
-* Examples of gnatxref Usage::
-* Examples of gnatfind Usage::
-
-The GNAT Pretty-Printer gnatpp
-* Switches for gnatpp::
-* Formatting Rules::
-
-The GNAT Metrics Tool gnatmetric
-* Switches for gnatmetric::
-
-File Name Krunching with gnatkr
-* About gnatkr::
-* Using gnatkr::
-* Krunching Method::
-* Examples of gnatkr Usage::
-
-Preprocessing with gnatprep
-* Preprocessing Symbols::
-* Using gnatprep::
-* Switches for gnatprep::
-* Form of Definitions File::
-* Form of Input Text for gnatprep::
-
-The GNAT Library Browser gnatls
-* Running gnatls::
-* Switches for gnatls::
-* Examples of gnatls Usage::
-
-Cleaning Up with gnatclean
-* Running gnatclean::
-* Switches for gnatclean::
-@c * Examples of gnatclean Usage::
-
-@ifclear vms
-GNAT and Libraries
-* Introduction to Libraries in GNAT::
-* General Ada Libraries::
-* Stand-alone Ada Libraries::
-* Rebuilding the GNAT Run-Time Library::
-
-Using the GNU make Utility
-* Using gnatmake in a Makefile::
-* Automatically Creating a List of Directories::
-* Generating the Command Line Switches::
-* Overcoming Command Line Length Limits::
-@end ifclear
-
-Memory Management Issues
-* Some Useful Memory Pools::
-* The GNAT Debug Pool Facility::
-@ifclear vms
-* The gnatmem Tool::
-@end ifclear
-
-Stack Related Facilities
-* Stack Overflow Checking::
-* Static Stack Usage Analysis::
-* Dynamic Stack Usage Analysis::
-
-Verifying Properties with gnatcheck
-
-Creating Sample Bodies with gnatstub
-* Running gnatstub::
-* Switches for gnatstub::
-
-Creating Unit Tests with gnattest
-* Running gnattest::
-* Switches for gnattest::
-* Project Attributes for gnattest::
-* Simple Example::
-* Setting Up and Tearing Down the Testing Environment::
-* Regenerating Tests::
-* Default Test Behavior::
-* Testing Primitive Operations of Tagged Types::
-* Testing Inheritance::
-* Tagged Types Substitutability Testing::
-* Testing with Contracts::
-* Additional Tests::
-@ifclear vms
-* Support for other platforms/run-times::
-@end ifclear
-* Current Limitations::
-
-Performing Dimensionality Analysis in GNAT
-
-Generating Ada Bindings for C and C++ headers
-* Running the binding generator::
-* Generating bindings for C++ headers::
-* Switches::
-
-Other Utility Programs
-* Using Other Utility Programs with GNAT::
-* The External Symbol Naming Scheme of GNAT::
-* Converting Ada Files to html with gnathtml::
-* Installing gnathtml::
-@ifset vms
-* LSE::
-* Profiling::
-@end ifset
-
-@ifclear vms
-Code Coverage and Profiling
-* Code Coverage of Ada Programs with gcov::
-* Profiling an Ada Program with gprof::
-@end ifclear
-
-Running and Debugging Ada Programs
-* The GNAT Debugger GDB::
-* Running GDB::
-* Introduction to GDB Commands::
-* Using Ada Expressions::
-* Calling User-Defined Subprograms::
-* Using the Next Command in a Function::
-* Ada Exceptions::
-* Ada Tasks::
-* Debugging Generic Units::
-* Remote Debugging with gdbserver::
-* GNAT Abnormal Termination or Failure to Terminate::
-* Naming Conventions for GNAT Source Files::
-* Getting Internal Debugging Information::
-* Stack Traceback::
-
-@ifset vms
-Compatibility with HP Ada
-* Ada Language Compatibility::
-* Differences in the Definition of Package System::
-* Language-Related Features::
-* The Package STANDARD::
-* The Package SYSTEM::
-* Tasking and Task-Related Features::
-* Pragmas and Pragma-Related Features::
-* Library of Predefined Units::
-* Bindings::
-* Main Program Definition::
-* Implementation-Defined Attributes::
-* Compiler and Run-Time Interfacing::
-* Program Compilation and Library Management::
-* Input-Output::
-* Implementation Limits::
-* Tools and Utilities::
-@end ifset
-
-Platform-Specific Information for the Run-Time Libraries
-* Summary of Run-Time Configurations::
-* Specifying a Run-Time Library::
-* Choosing the Scheduling Policy::
-* Solaris-Specific Considerations::
-* Linux-Specific Considerations::
-* AIX-Specific Considerations::
-* RTX-Specific Considerations::
-* HP-UX-Specific Considerations::
-
-Example of Binder Output File
-
-Elaboration Order Handling in GNAT
-* Elaboration Code::
-* Checking the Elaboration Order::
-* Controlling the Elaboration Order::
-* Controlling Elaboration in GNAT - Internal Calls::
-* Controlling Elaboration in GNAT - External Calls::
-* Default Behavior in GNAT - Ensuring Safety::
-* Treatment of Pragma Elaborate::
-* Elaboration Issues for Library Tasks::
-* Mixing Elaboration Models::
-* What to Do If the Default Elaboration Behavior Fails::
-* Elaboration for Dispatching Calls::
-* Summary of Procedures for Elaboration Control::
-* Other Elaboration Order Considerations::
-
-Overflow Check Handling in GNAT
-* Background::
-* Overflow Checking Modes in GNAT::
-* Specifying the Desired Mode::
-* Default Settings::
-* Implementation Notes::
-
-Conditional Compilation
-* Use of Boolean Constants::
-* Debugging - A Special Case::
-* Conditionalizing Declarations::
-* Use of Alternative Implementations::
-* Preprocessing::
-
-Inline Assembler
-* Basic Assembler Syntax::
-* A Simple Example of Inline Assembler::
-* Output Variables in Inline Assembler::
-* Input Variables in Inline Assembler::
-* Inlining Inline Assembler Code::
-* Other Asm Functionality::
-
-Compatibility and Porting Guide
-* Compatibility with Ada 83::
-* Compatibility between Ada 95 and Ada 2005::
-* Implementation-dependent characteristics::
-* Compatibility with Other Ada Systems::
-* Representation Clauses::
-@ifclear vms
-@c This brief section is only in the non-VMS version
-@c The complete chapter on HP Ada issues is in the VMS version
-* Compatibility with HP Ada 83::
-@end ifclear
-@ifset vms
-* Transitioning to 64-Bit GNAT for OpenVMS::
-@end ifset
-
-Microsoft Windows Topics
-@ifclear FSFEDITION
-* Installing from the Command Line::
-@end ifclear
-* Using GNAT on Windows::
-* Using a network installation of GNAT::
-* CONSOLE and WINDOWS subsystems::
-* Temporary Files::
-* Mixed-Language Programming on Windows::
-* Windows Calling Conventions::
-* Introduction to Dynamic Link Libraries (DLLs)::
-* Using DLLs with GNAT::
-* Building DLLs with GNAT::
-* Building DLLs with gnatdll::
-* GNAT and Windows Resources::
-* Debugging a DLL::
-* Setting Stack Size from gnatlink::
-* Setting Heap Size from gnatlink::
-
-Mac OS Topics
-* Codesigning the Debugger::
-
-GNU Free Documentation License
-
-Index
 @end menu
 @end ifnottex
 
@@ -31080,7 +30739,7 @@ the location where you installed GNAT.
 @include fdl.texi
 @c GNU Free Documentation License
 
-@node Index,,GNU Free Documentation License, Top
+@node Index
 @unnumbered Index
 
 @printindex cp
index 68429a81feacb4e094bd01ce58dc7d383c400f98..03580fe117b387abd21ef3369410518974f789c6 100644 (file)
@@ -602,21 +602,20 @@ package Opt is
    Float_Format : Character := ' ';
    --  GNAT
    --  A non-blank value indicates that a Float_Format pragma has been
-   --  processed, in which case this variable is set to 'I' for IEEE or
-   --  to 'V' for VAX. The setting of 'V' is only possible on OpenVMS
-   --  versions of GNAT.
+   --  processed, in which case this variable is set to 'I' for IEEE or to
+   --  'V' for VAX. The setting of 'V' is only possible on OpenVMS versions
+   --  of GNAT.
 
    Float_Format_Long : Character := ' ';
    --  GNAT
-   --  A non-blank value indicates that a Long_Float pragma has been
-   --  processed (this pragma is recognized only in OpenVMS versions
-   --  of GNAT), in which case this variable is set to D or G for
-   --  D_Float or G_Float.
+   --  A non-blank value indicates that a Long_Float pragma has been processed
+   --  (this pragma is recognized only in OpenVMS versions of GNAT), in which
+   --  case this variable is set to D or G for D_Float or G_Float.
 
    Force_ALI_Tree_File : Boolean := False;
    --  GNAT
-   --  Force generation of ALI file even if errors are encountered.
-   --  Also forces generation of tree file if -gnatt is also set.
+   --  Force generation of ALI file even if errors are encountered. Also forces
+   --  generation of tree file if -gnatt is also set. Set on by use of -gnatQ.
 
    Disable_ALI_File : Boolean := False;
    --  GNAT
@@ -1404,12 +1403,12 @@ package Opt is
    --  Flag set to force attempt at semantic analysis, even if parser errors
    --  occur. This will probably cause blowups at this stage in the game. On
    --  the other hand, most such blowups will be caught cleanly and simply
-   --  say compilation abandoned. This flag is set to True by -gnatq or -gnatQ.
+   --  say compilation abandoned. This flag is set on by -gnatq or -gnatQ.
 
    Unchecked_Shared_Lib_Imports : Boolean := False;
    --  GPRBUILD
    --  Set to True when shared library projects are allowed to import projects
-   --  that are not shared library projects. Set by switch
+   --  that are not shared library projects. Set on by use of the switch
    --  --unchecked-shared-lib-imports.
 
    Undefined_Symbols_Are_False : Boolean := False;
index 4c8bbc1677b291eb454e6a1b5fd1e130f3ac5d4b..d06398ac946bee883d62a29ad124164600651683 100644 (file)
@@ -1968,12 +1968,27 @@ package body Sem_Ch13 is
                end if;
             end if;
 
+            --  Aspect Abstract_State introduces implicit declarations for all
+            --  state abstraction entities it defines. To emulate this behavior
+            --  insert the pragma at the start of the visible declarations of
+            --  the related package.
+
+            if Nam = Name_Abstract_State
+              and then Nkind (N) = N_Package_Declaration
+            then
+               if No (Visible_Declarations (Specification (N))) then
+                  Set_Visible_Declarations (Specification (N), New_List);
+               end if;
+
+               Prepend (Aitem, Visible_Declarations (Specification (N)));
+               goto Continue;
+
             --  In the context of a compilation unit, we directly put the
             --  pragma in the Pragmas_After list of the
             --  N_Compilation_Unit_Aux node (no delay is required here)
             --  except for aspects on a subprogram body (see below).
 
-            if Nkind (Parent (N)) = N_Compilation_Unit
+            elsif Nkind (Parent (N)) = N_Compilation_Unit
               and then (Present (Aitem) or else Is_Boolean_Aspect (Aspect))
             then
                declare
@@ -2014,20 +2029,6 @@ package body Sem_Ch13 is
 
                      Prepend (Aitem, Declarations (N));
 
-                  --  Aspect Abstract_State produces implicit declarations for
-                  --  all state abstraction entities it defines. To emulate
-                  --  this behavior, insert the pragma at the start of the
-                  --  visible declarations of the related package.
-
-                  elsif Nam = Name_Abstract_State
-                    and then Nkind (N) = N_Package_Declaration
-                  then
-                     if No (Visible_Declarations (Specification (N))) then
-                        Set_Visible_Declarations (Specification (N), New_List);
-                     end if;
-
-                     Prepend (Aitem, Visible_Declarations (Specification (N)));
-
                   else
                      if No (Pragmas_After (Aux)) then
                         Set_Pragmas_After (Aux, New_List);
index 6efd878c8fb96cecb0584d80258164b1bee8215d..9616c6f9950e1fb8b56a4e85fce03cc695ffdd08 100644 (file)
@@ -9330,9 +9330,8 @@ package body Sem_Prag is
             begin
                if Is_Input then
                   if Ekind (Item_Id) = E_Out_Parameter
-                    or else
-                      (Global_Seen
-                         and then not Appears_In (Subp_Inputs, Item_Id))
+                    or else (Global_Seen
+                              and then not Appears_In (Subp_Inputs, Item_Id))
                   then
                      Error_Msg_NE
                        ("item & must have mode in or in out", Item, Item_Id);
index 5cd1ab678b8a96aca6df47c1c9bd72eb1d77bf05..1296786ef5aad6fc2efd45b3ca5d4c62e35c08d5 100644 (file)
@@ -1453,7 +1453,8 @@ package Sem_Util is
    procedure Set_Entity_With_Style_Check (N : Node_Id; Val : Entity_Id);
    --  This procedure has the same calling sequence as Set_Entity, but
    --  if Style_Check is set, then it calls a style checking routine which
-   --  can check identifier spelling style.
+   --  can check identifier spelling style. This procedure also takes care
+   --  of checking the restriction No_Implementation_Identifiers.
 
    procedure Set_Name_Entity_Id (Id : Name_Id; Val : Entity_Id);
    pragma Inline (Set_Name_Entity_Id);