From c2658843ea5068503078a7ac9b280179739bb17f Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Fri, 12 Apr 2013 14:48:12 +0200 Subject: [PATCH] [multiple changes] 2013-04-12 Bob Duff * par-ch7.adb (P_Package): Initialize Sloc in the newly-pushed scope stack entry. 2013-04-12 Robert Dewar * switch-c.adb: Minor fix to wording of error message for -gnatet/eT. 2013-04-12 Robert Dewar * impunit.adb: Add s-multip and s-mudido to list of impl defined system units. * gnat_rm.texi: Add documentation for System.Multiprocessors[.Dispatching_Domains]. 2013-04-12 Ben Brosgol * gnat_ugn.texi: Completion of menu cleanups. 2013-04-12 Arnaud Charlet * sem_prag.adb (Diagnose_Multiple_Pragmas): Relax the rules in Relaxed_RM_Semantics. 2013-04-12 Arnaud Charlet * set_targ.adb (elab code): Add support for non gcc back-ends where save_argv is null. From-SVN: r197899 --- gcc/ada/ChangeLog | 31 ++++++ gcc/ada/gnat_rm.texi | 20 ++++ gcc/ada/gnat_ugn.texi | 233 ++++++++++++++++++------------------------ gcc/ada/impunit.adb | 13 ++- gcc/ada/par-ch7.adb | 4 +- gcc/ada/sem_prag.adb | 6 +- gcc/ada/set_targ.adb | 33 ++++-- gcc/ada/switch-c.adb | 6 +- 8 files changed, 192 insertions(+), 154 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index e71c87783cd..309e82836ca 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,34 @@ +2013-04-12 Bob Duff + + * par-ch7.adb (P_Package): Initialize Sloc in the newly-pushed scope + stack entry. + +2013-04-12 Robert Dewar + + * switch-c.adb: Minor fix to wording of error message for + -gnatet/eT. + +2013-04-12 Robert Dewar + + * impunit.adb: Add s-multip and s-mudido to list of impl defined + system units. + * gnat_rm.texi: Add documentation for + System.Multiprocessors[.Dispatching_Domains]. + +2013-04-12 Ben Brosgol + + * gnat_ugn.texi: Completion of menu cleanups. + +2013-04-12 Arnaud Charlet + + * sem_prag.adb (Diagnose_Multiple_Pragmas): Relax the rules + in Relaxed_RM_Semantics. + +2013-04-12 Arnaud Charlet + + * set_targ.adb (elab code): Add support for non gcc back-ends + where save_argv is null. + 2013-04-12 Robert Dewar * gnat1drv.adb (Gnat1drv): Test Target_Dependent_Info_Write_Name. diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index e320acd52fa..abdfcce052c 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -548,6 +548,8 @@ The GNAT Library * System.Address_Image (s-addima.ads):: * System.Assertions (s-assert.ads):: * System.Memory (s-memory.ads):: +* System.Multiprocessors (s-multip.ads):: +* System.Multiprocessors.Dispatching_Domains (s-mudido.ads):: * System.Partition_Interface (s-parint.ads):: * System.Pool_Global (s-pooglo.ads):: * System.Pool_Local (s-pooloc.ads):: @@ -15508,6 +15510,8 @@ of GNAT, and will generate a warning message. * System.Address_Image (s-addima.ads):: * System.Assertions (s-assert.ads):: * System.Memory (s-memory.ads):: +* System.Multiprocessors (s-multip.ads):: +* System.Multiprocessors.Dispatching_Domains (s-mudido.ads):: * System.Partition_Interface (s-parint.ads):: * System.Pool_Global (s-pooglo.ads):: * System.Pool_Local (s-pooloc.ads):: @@ -16970,6 +16974,22 @@ allocation mechanisms for the default pool, and in addition, direct calls to this unit may be made for low level allocation uses (for example see the body of @code{GNAT.Tables}). +@node System.Multiprocessors (s-multip.ads) +@section @code{System.Multiprocessors} (@file{s-multip.ads}) +@cindex @code{System.Multiprocessors} (@file{s-multip.ads}) +@cindex Multiprocessor interface +This is an Ada 2012 unit defined in the Ada 2012 Reference Manual, but +in GNAT we also make it available in Ada 95 and Ada 2005 (where it is +technically an implementation-defined addition). + +@node System.Multiprocessors.Dispatching_Domains (s-mudido.ads) +@section @code{System.Multiprocessors.Dispatching_Domains} (@file{s-mudido.ads}) +@cindex @code{System.Multiprocessors.Dispatching_Domains} (@file{s-mudido.ads}) +@cindex Multiprocessor interface +This is an Ada 2012 unit defined in the Ada 2012 Reference Manual, but +in GNAT we also make it available in Ada 95 and Ada 2005 (where it is +technically an implementation-defined addition). + @node System.Partition_Interface (s-parint.ads) @section @code{System.Partition_Interface} (@file{s-parint.ads}) @cindex @code{System.Partition_Interface} (@file{s-parint.ads}) diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 9be0dbff2f2..8d46f70bde8 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -169,32 +169,32 @@ AdaCore@* * About This Guide:: * Getting Started with GNAT:: * The GNAT Compilation Model:: -* Compiling With gcc:: -* Binding With gnatbind:: -* Linking With gnatlink:: +* Compiling with gcc:: +* Binding with gnatbind:: +* Linking with gnatlink:: * The GNAT Make Program gnatmake:: * Improving Performance:: -* Renaming Files Using gnatchop:: +* Renaming Files with gnatchop:: * Configuration Pragmas:: -* Handling Arbitrary File Naming Conventions Using gnatname:: +* Handling Arbitrary File Naming Conventions with gnatname:: * GNAT Project Manager:: * Tools Supporting Project Files:: * The Cross-Referencing Tools gnatxref and gnatfind:: * The GNAT Pretty-Printer gnatpp:: -* The GNAT Metric Tool gnatmetric:: -* File Name Krunching Using gnatkr:: -* Preprocessing Using gnatprep:: +* The GNAT Metrics Tool gnatmetric:: +* File Name Krunching with gnatkr:: +* Preprocessing with gnatprep:: * The GNAT Library Browser gnatls:: -* Cleaning Up Using gnatclean:: +* Cleaning Up with gnatclean:: @ifclear vms * GNAT and Libraries:: * Using the GNU make Utility:: @end ifclear * Memory Management Issues:: * Stack Related Facilities:: -* Verifying Properties Using gnatcheck:: -* Creating Sample Bodies Using gnatstub:: -* Creating Unit Tests Using gnattest:: +* Verifying Properties with gnatcheck:: +* Creating Sample Bodies with gnatstub:: +* Creating Unit Tests with gnattest:: * Performing Dimensionality Analysis in GNAT:: * Generating Ada Bindings for C and C++ headers:: * Other Utility Programs:: @@ -257,21 +257,21 @@ The GNAT Compilation Model * Placement of temporary files:: @end ifset -Compiling With gcc +Compiling with gcc * Compiling Programs:: * Switches for gcc:: * Search Paths and the Run-Time Library (RTL):: * Order of Compilation Issues:: * Examples:: -Binding With gnatbind +Binding with gnatbind * Running gnatbind:: * Switches for gnatbind:: * Command-Line Access:: * Search Paths for gnatbind:: * Examples of gnatbind Usage:: -Linking With gnatlink +Linking with gnatlink * Running gnatlink:: * Switches for gnatlink:: @@ -289,7 +289,7 @@ Improving Performance * Reducing Size of Ada Executables with gnatelim:: * Reducing Size of Executables with unused subprogram/data elimination:: -Renaming Files Using gnatchop +Renaming Files with gnatchop * Handling Files with Multiple Units:: * Operating gnatchop in Compilation Mode:: * Command Line for gnatchop:: @@ -300,7 +300,7 @@ Configuration Pragmas * Handling of Configuration Pragmas:: * The Configuration Pragmas Files:: -Handling Arbitrary File Naming Conventions Using gnatname +Handling Arbitrary File Naming Conventions with gnatname * Arbitrary File Naming Conventions:: * Running gnatname:: * Switches for gnatname:: @@ -318,11 +318,8 @@ GNAT Project Manager * Project File Reference:: Tools Supporting Project Files -* Switches Related to Project Files:: -* Switches and Project Files:: -* Specifying Configuration Pragmas:: -* Project Files and Main Subprograms:: -* Library Project Files:: +* gnatmake and Project Files:: +* The GNAT Driver and Project Files:: The Cross-Referencing Tools gnatxref and gnatfind * Switches for gnatxref:: @@ -339,13 +336,13 @@ The GNAT Pretty-Printer gnatpp The GNAT Metrics Tool gnatmetric * Switches for gnatmetric:: -File Name Krunching Using gnatkr +File Name Krunching with gnatkr * About gnatkr:: * Using gnatkr:: * Krunching Method:: * Examples of gnatkr Usage:: -Preprocessing Using gnatprep +Preprocessing with gnatprep * Preprocessing Symbols:: * Using gnatprep:: * Switches for gnatprep:: @@ -357,7 +354,7 @@ The GNAT Library Browser gnatls * Switches for gnatls:: * Examples of gnatls Usage:: -Cleaning Up Using gnatclean +Cleaning Up with gnatclean * Running gnatclean:: * Switches for gnatclean:: @c * Examples of gnatclean Usage:: @@ -388,13 +385,13 @@ Stack Related Facilities * Static Stack Usage Analysis:: * Dynamic Stack Usage Analysis:: -Verifying Properties Using gnatcheck +Verifying Properties with gnatcheck -Creating Sample Bodies Using gnatstub +Creating Sample Bodies with gnatstub * Running gnatstub:: * Switches for gnatstub:: -Creating Unit Tests Using gnattest +Creating Unit Tests with gnattest * Running gnattest:: * Switches for gnattest:: * Project Attributes for gnattest:: @@ -431,8 +428,8 @@ Other Utility Programs @ifclear vms Code Coverage and Profiling -* Code Coverage of Ada Programs using gcov:: -* Profiling an Ada Program using gprof:: +* Code Coverage of Ada Programs with gcov:: +* Profiling an Ada Program with gprof:: @end ifclear Running and Debugging Ada Programs @@ -445,7 +442,7 @@ Running and Debugging Ada Programs * Ada Exceptions:: * Ada Tasks:: * Debugging Generic Units:: -* Remote Debugging using gdbserver:: +* Remote Debugging with gdbserver:: * GNAT Abnormal Termination or Failure to Terminate:: * Naming Conventions for GNAT Source Files:: * Getting Internal Debugging Information:: @@ -469,36 +466,6 @@ Compatibility with HP Ada * Input-Output:: * Implementation Limits:: * Tools and Utilities:: - -Language-Related Features -* Integer Types and Representations:: -* Floating-Point Types and Representations:: -* Pragmas Float_Representation and Long_Float:: -* Fixed-Point Types and Representations:: -* Record and Array Component Alignment:: -* Address Clauses:: -* Other Representation Clauses:: - -Tasking and Task-Related Features -* Implementation of Tasks in HP Ada for OpenVMS Alpha Systems:: -* Assigning Task IDs:: -* Task IDs and Delays:: -* Task-Related Pragmas:: -* Scheduling and Task Priority:: -* The Task Stack:: -* External Interrupts:: - -Pragmas and Pragma-Related Features -* Restrictions on the Pragma INLINE:: -* Restrictions on the Pragma INTERFACE:: -* Restrictions on the Pragma SYSTEM_NAME:: - -Library of Predefined Units -* Changes to DECLIB:: - -Bindings -* Shared Libraries and Options Files:: -* Interfaces to C:: @end ifset Platform-Specific Information for the Run-Time Libraries @@ -554,13 +521,13 @@ 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 -* Compatibility with Other Ada Systems:: -* Representation Clauses:: @ifset vms * Transitioning to 64-Bit GNAT for OpenVMS:: @end ifset @@ -578,6 +545,7 @@ Microsoft Windows Topics * 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:: @@ -650,16 +618,16 @@ and running Ada programs with the GNAT Ada programming environment. by GNAT. @item -@ref{Compiling With gcc}, describes how to compile +@ref{Compiling with gcc}, describes how to compile Ada programs with @command{gcc}, the Ada compiler. @item -@ref{Binding With gnatbind}, describes how to +@ref{Binding with gnatbind}, describes how to perform binding of Ada programs with @code{gnatbind}, the GNAT binding utility. @item -@ref{Linking With gnatlink}, +@ref{Linking with gnatlink}, describes @command{gnatlink}, a program that provides for linking using the GNAT run-time library to construct a program. @command{gnatlink} can also incorporate foreign language @@ -679,7 +647,7 @@ also describes the @command{gnatelim} tool and unused subprogram/data elimination. @item -@ref{Renaming Files Using gnatchop}, describes +@ref{Renaming Files with gnatchop}, describes @code{gnatchop}, a utility that allows you to preprocess a file that contains Ada source code, and split it into one or more new files, one for each compilation unit. @@ -689,7 +657,7 @@ for each compilation unit. handled by GNAT. @item -@ref{Handling Arbitrary File Naming Conventions Using gnatname}, +@ref{Handling Arbitrary File Naming Conventions with gnatname}, shows how to override the default GNAT file naming conventions, either for an individual unit or globally. @@ -708,17 +676,17 @@ version of an Ada source file with control over casing, indentation, comment placement, and other elements of program presentation style. @item -@ref{The GNAT Metric Tool gnatmetric}, shows how to compute various +@ref{The GNAT Metrics Tool gnatmetric}, shows how to compute various metrics for an Ada source file, such as the number of types and subprograms, and assorted complexity measures. @item -@ref{File Name Krunching Using gnatkr}, describes the @code{gnatkr} +@ref{File Name Krunching with gnatkr}, describes the @code{gnatkr} file name krunching utility, used to handle shortened file names on operating systems with a limit on the length of names. @item -@ref{Preprocessing Using gnatprep}, describes @code{gnatprep}, a +@ref{Preprocessing with gnatprep}, describes @code{gnatprep}, a preprocessor utility that allows a single source file to be used to generate multiple or parameterized source files by means of macro substitution. @@ -729,7 +697,7 @@ utility that displays information about compiled units, including dependences on the corresponding sources files, and consistency of compilations. @item -@ref{Cleaning Up Using gnatclean}, describes @code{gnatclean}, a utility +@ref{Cleaning Up with gnatclean}, describes @code{gnatclean}, a utility to delete files that are produced by the compiler, binder and linker. @ifclear vms @@ -757,15 +725,15 @@ allocation and deallocation and helps detect ``memory leaks''. stack checking and analysis. @item -@ref{Verifying Properties Using gnatcheck}, discusses @code{gnatcheck}, +@ref{Verifying Properties with gnatcheck}, discusses @code{gnatcheck}, a utility that checks Ada code against a set of rules. @item -@ref{Creating Sample Bodies Using gnatstub}, discusses @code{gnatstub}, +@ref{Creating Sample Bodies with gnatstub}, discusses @code{gnatstub}, a utility that generates empty but compilable bodies for library units. @item -@ref{Creating Unit Tests Using gnattest}, discusses @code{gnattest}, +@ref{Creating Unit Tests with gnattest}, discusses @code{gnattest}, a utility that generates unit testing templates for library units. @item @@ -1056,7 +1024,7 @@ Alternatively, if you want to rename your files according to this default convention, which is probably more convenient if you will be using GNAT for all your compilations, then the @code{gnatchop} utility can be used to generate correctly-named source files -(@pxref{Renaming Files Using gnatchop}). +(@pxref{Renaming Files with gnatchop}). You can compile the program using the following command (@code{$} is used as the command prompt in the examples in this document): @@ -1993,7 +1961,7 @@ can specify the exact file names that you want used, as described in the next section. Finally, if your Ada programs are migrating from a compiler with a different naming convention, you can use the gnatchop utility to produce source files that follow the GNAT naming conventions. -(For details @pxref{Renaming Files Using gnatchop}.) +(For details @pxref{Renaming Files with gnatchop}.) Note: in the case of @code{Windows NT/XP} or @code{OpenVMS} operating systems, case is not significant. So for example on @code{Windows XP} @@ -3725,8 +3693,8 @@ GNAT uses the current directory for temporary files. @end ifset @c ************************* -@node Compiling With gcc -@chapter Compiling With @command{gcc} +@node Compiling with gcc +@chapter Compiling with @command{gcc} @noindent This chapter discusses how to compile Ada programs using the @command{gcc} @@ -7015,7 +6983,7 @@ on subprogram calls and generic instantiations. Note that @option{-gnatE} is not necessary for safety, because in the default mode, GNAT ensures statically that the checks would not fail. For full details of the effect and use of this switch, -@xref{Compiling With gcc}. +@xref{Compiling with gcc}. @item -fstack-check @cindex @option{-fstack-check} (@command{gcc}) @@ -7084,7 +7052,7 @@ Normally, GNAT allows only a single unit in a source file. However, this restriction does not apply in syntax-check-only mode, and it is possible to check a file containing multiple compilation units concatenated together. This is primarily used by the @code{gnatchop} utility -(@pxref{Renaming Files Using gnatchop}). +(@pxref{Renaming Files with gnatchop}). @end table @node Using gcc for Semantic Checking @@ -7859,7 +7827,7 @@ preprocessing. @noindent The actual preprocessing function is described in details in section -@ref{Preprocessing Using gnatprep}. This section only describes how integrated +@ref{Preprocessing with gnatprep}. This section only describes how integrated preprocessing is triggered and parameterized. @table @code @@ -8207,8 +8175,8 @@ Compile the subunit in file @file{abc-def.adb} in semantic-checking-only mode. @end table -@node Binding With gnatbind -@chapter Binding With @code{gnatbind} +@node Binding with gnatbind +@chapter Binding with @code{gnatbind} @findex gnatbind @menu @@ -9203,8 +9171,8 @@ since gnatlink will not be able to find the generated file. @end table @c ------------------------------------ -@node Linking With gnatlink -@chapter Linking With @command{gnatlink} +@node Linking with gnatlink +@chapter Linking with @command{gnatlink} @c ------------------------------------ @findex gnatlink @@ -11560,8 +11528,8 @@ It can be observed that the procedure @code{Unused} and the object appropriate options. @c ******************************** -@node Renaming Files Using gnatchop -@chapter Renaming Files Using @code{gnatchop} +@node Renaming Files with gnatchop +@chapter Renaming Files with @code{gnatchop} @findex gnatchop @noindent @@ -11918,6 +11886,11 @@ unit will be skipped. @cindex Configuration pragmas @cindex Pragmas, configuration +@menu +* Handling of Configuration Pragmas:: +* The Configuration Pragmas Files:: +@end menu + @noindent Configuration pragmas include those pragmas described as such in the Ada Reference Manual, as well as @@ -11994,14 +11967,8 @@ recognized by GNAT: Validity_Checks Warnings Wide_Character_Encoding - @end smallexample -@menu -* Handling of Configuration Pragmas:: -* The Configuration Pragmas Files:: -@end menu - @node Handling of Configuration Pragmas @section Handling of Configuration Pragmas @@ -12090,8 +12057,8 @@ predefined package SYSTEM all the additional types and subprograms that are defined in HP Ada. See @ref{Compatibility with HP Ada} for details. @end ifset -@node Handling Arbitrary File Naming Conventions Using gnatname -@chapter Handling Arbitrary File Naming Conventions Using @code{gnatname} +@node Handling Arbitrary File Naming Conventions with gnatname +@chapter Handling Arbitrary File Naming Conventions with @code{gnatname} @cindex Arbitrary File Naming Conventions @menu @@ -13967,6 +13934,11 @@ point to any character in the middle of the identifier. @findex gnatpp @cindex Pretty-Printer +@menu +* Switches for gnatpp:: +* Formatting Rules:: +@end menu + @noindent ^The @command{gnatpp} tool^GNAT PRETTY^ is an ASIS-based utility for source reformatting / pretty-printing. @@ -14027,11 +13999,6 @@ use the @option{-gnat05} switch if sources should be compiled in Ada 2005 mode etc. @end itemize -@menu -* Switches for gnatpp:: -* Formatting Rules:: -@end menu - @node Switches for gnatpp @section Switches for @command{gnatpp} @@ -15137,8 +15104,8 @@ end Test; @end smallexample @c ********************************* -@node The GNAT Metric Tool gnatmetric -@chapter The GNAT Metric Tool @command{gnatmetric} +@node The GNAT Metrics Tool gnatmetric +@chapter The GNAT Metrics Tool @command{gnatmetric} @findex gnatmetric @cindex Metric tool @@ -15149,6 +15116,10 @@ It takes an Ada source file as input and generates a file containing the metrics data as output. Various switches control which metrics are computed and output. +@menu +* Switches for gnatmetric:: +@end menu + @command{gnatmetric} generates and uses the ASIS tree for the input source and thus requires the input to be syntactically and semantically legal. @@ -15201,10 +15172,6 @@ use the @option{-gnat05} switch if sources should be compiled in Ada 2005 mode etc. @end itemize -@menu -* Switches for gnatmetric:: -@end menu - @node Switches for gnatmetric @section Switches for @command{gnatmetric} @@ -16076,8 +16043,8 @@ the @option{-U} option followed by the name of the main unit: @c *********************************** -@node File Name Krunching Using gnatkr -@chapter File Name Krunching Using @code{gnatkr} +@node File Name Krunching with gnatkr +@chapter File Name Krunching with @code{gnatkr} @findex gnatkr @noindent @@ -16292,8 +16259,8 @@ $ gnatkr very_long_unit_name.ads/count=6 --> vlunna.ads $ gnatkr very_long_unit_name.ads/count=0 --> very_long_unit_name.ads @end smallexample -@node Preprocessing Using gnatprep -@chapter Preprocessing Using @code{gnatprep} +@node Preprocessing with gnatprep +@chapter Preprocessing with @code{gnatprep} @findex gnatprep @noindent @@ -16889,8 +16856,8 @@ GNU:[LIB.OPENVMS7_1.2_8_1.ADALIB]unchconv.ads @end smallexample @end ifset -@node Cleaning Up Using gnatclean -@chapter Cleaning Up Using @code{gnatclean} +@node Cleaning Up with gnatclean +@chapter Cleaning Up with @code{gnatclean} @findex gnatclean @cindex Cleaning tool @@ -18743,8 +18710,8 @@ stack usage reports at run-time. See its body for the details. @c ********************************* @c * GNATCHECK * @c ********************************* -@node Verifying Properties Using gnatcheck -@chapter Verifying Properties Using @command{gnatcheck} +@node Verifying Properties with gnatcheck +@chapter Verifying Properties with @command{gnatcheck} @findex gnatcheck @cindex @command{gnatcheck} @@ -18765,8 +18732,8 @@ For full details, refer to @cite{GNATcheck Reference Manual} document. @c ********************************* -@node Creating Sample Bodies Using gnatstub -@chapter Creating Sample Bodies Using @command{gnatstub} +@node Creating Sample Bodies with gnatstub +@chapter Creating Sample Bodies with @command{gnatstub} @findex gnatstub @noindent @@ -18974,8 +18941,8 @@ Verbose mode: generate version information. @end table @c ********************************* -@node Creating Unit Tests Using gnattest -@chapter Creating Unit Tests Using @command{gnattest} +@node Creating Unit Tests with gnattest +@chapter Creating Unit Tests with @command{gnattest} @findex gnattest @noindent @@ -20269,12 +20236,12 @@ This chapter describes how to use @code{gcov} - coverage testing tool - and @code{gprof} - profiler tool - on your Ada programs. @menu -* Code Coverage of Ada Programs using gcov:: -* Profiling an Ada Program using gprof:: +* Code Coverage of Ada Programs with gcov:: +* Profiling an Ada Program with gprof:: @end menu -@node Code Coverage of Ada Programs using gcov -@section Code Coverage of Ada Programs using gcov +@node Code Coverage of Ada Programs with gcov +@section Code Coverage of Ada Programs with gcov @cindex gcov @cindex -fprofile-arcs @cindex -ftest-coverage @@ -20361,8 +20328,8 @@ text file, and provide this file to gcov as a parameter, preceded by a @@ Note that on AIX compiling a static library with @code{-fprofile-arcs} is not supported as there can be unresolved symbols during the final link. -@node Profiling an Ada Program using gprof -@section Profiling an Ada Program using gprof +@node Profiling an Ada Program with gprof +@section Profiling an Ada Program with gprof @cindex gprof @cindex -pg @cindex Profiling @@ -20587,7 +20554,7 @@ the incorrect user program. * Ada Exceptions:: * Ada Tasks:: * Debugging Generic Units:: -* Remote Debugging using gdbserver:: +* Remote Debugging with gdbserver:: * GNAT Abnormal Termination or Failure to Terminate:: * Naming Conventions for GNAT Source Files:: * Getting Internal Debugging Information:: @@ -21045,9 +21012,9 @@ When the breakpoint occurs, you can step through the code of the instance in the normal manner and examine the values of local variables, as for other units. -@node Remote Debugging using gdbserver -@section Remote Debugging using gdbserver -@cindex Remote Debugging using gdbserver +@node Remote Debugging with gdbserver +@section Remote Debugging with gdbserver +@cindex Remote Debugging with gdbserver @noindent On platforms where gdbserver is supported, it is possible to use this tool @@ -27238,7 +27205,7 @@ The preprocessor may be used in two separate modes. It can be used quite separately from the compiler, to generate a separate output source file that is then fed to the compiler as a separate step. This is the @code{gnatprep} utility, whose use is fully described in -@ref{Preprocessing Using gnatprep}. +@ref{Preprocessing with gnatprep}. @cindex @code{gnatprep} The preprocessing language allows such constructs as @@ -29656,12 +29623,6 @@ end API; @end group @end smallexample -@noindent -Note that a variable is -@strong{always imported with a DLL convention}. A function -can have @code{C} or @code{Stdcall} convention. -(@pxref{Windows Calling Conventions}). - @node Creating an Import Library @subsection Creating an Import Library @cindex Import library diff --git a/gcc/ada/impunit.adb b/gcc/ada/impunit.adb index efeb8960a4e..bb62264c66b 100644 --- a/gcc/ada/impunit.adb +++ b/gcc/ada/impunit.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2012, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2013, 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- -- @@ -380,7 +380,14 @@ package body Impunit is ("s-ststop", F), -- System.Strings.Stream_Ops ("s-tasinf", F), -- System.Task_Info ("s-wchcnv", F), -- System.Wch_Cnv - ("s-wchcon", F)); -- System.Wch_Con + ("s-wchcon", F), -- System.Wch_Con + + -- The following are strictly speaking Ada 2012 units, but we are allowed + -- to add children to system, so we consider them to be implementation + -- defined additions to System in earlier versions of Ada. + + ("s-multip", T), -- System.Multiprocessors + ("s-mudido", T)); -- System.Multiprocessors.Dispatching_Domains -------------------- -- Ada 2005 Units -- @@ -544,8 +551,6 @@ package body Impunit is -- The following units should be used only in Ada 2012 mode Non_Imp_File_Names_12 : constant File_List := ( - ("s-multip", T), -- System.Multiprocessors - ("s-mudido", T), -- System.Multiprocessors.Dispatching_Domains ("s-stposu", T), -- System.Storage_Pools.Subpools ("a-cobove", T), -- Ada.Containers.Bounded_Vectors ("a-cbdlli", T), -- Ada.Containers.Bounded_Doubly_Linked_Lists diff --git a/gcc/ada/par-ch7.adb b/gcc/ada/par-ch7.adb index 15f98bfcfb3..d52a13d6c5b 100644 --- a/gcc/ada/par-ch7.adb +++ b/gcc/ada/par-ch7.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2013, 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- -- @@ -138,6 +138,7 @@ package body Ch7 is end if; T_Body; + Scope.Table (Scope.Last).Sloc := Token_Ptr; Name_Node := P_Defining_Program_Unit_Name; Scope.Table (Scope.Last).Labl := Name_Node; TF_Is; @@ -182,6 +183,7 @@ package body Ch7 is -- Cases other than Package_Body else + Scope.Table (Scope.Last).Sloc := Token_Ptr; Name_Node := P_Defining_Program_Unit_Name; Scope.Table (Scope.Last).Labl := Name_Node; diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 1d233e026b7..b3b117576dd 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -3456,8 +3456,12 @@ package body Sem_Prag is end if; -- Give message if needed if we fall through those tests + -- except on Relaxed_RM_Semantics where we let go: either this + -- is a case accepted/ignored by other Ada compilers (e.g. + -- a mix of Convention and Import), or another error will be + -- generated later (e.g. using both Import and Export). - if Err then + if Err and not Relaxed_RM_Semantics then Error_Pragma_Arg ("at most one Convention/Export/Import pragma is allowed", Arg2); diff --git a/gcc/ada/set_targ.adb b/gcc/ada/set_targ.adb index 6699b418328..db08f0d4e7b 100755 --- a/gcc/ada/set_targ.adb +++ b/gcc/ada/set_targ.adb @@ -487,18 +487,26 @@ begin pragma Import (C, save_argv); -- Saved value of argv (argument pointers), imported from misc.c - function Len_Arg (Arg : Pos) return Nat; - -- Determine length of argument number Arg on original gnat1 command - -- line. + gnat_argc : Nat; + gnat_argv : Arg_Array_Ptr; + pragma Import (C, gnat_argc); + pragma Import (C, gnat_argv); + -- If save_argv is not set, default to gnat_argc/argv + + argc : Nat; + argv : Arg_Array_Ptr; + + function Len_Arg (Arg : Big_String_Ptr) return Nat; + -- Determine length of argument Arg (a nul terminated C string). ------------- -- Len_Arg -- ------------- - function Len_Arg (Arg : Pos) return Nat is + function Len_Arg (Arg : Big_String_Ptr) return Nat is begin for J in 1 .. Nat'Last loop - if save_argv (Arg).all (Natural (J)) = ASCII.NUL then + if Arg (Natural (J)) = ASCII.NUL then return J - 1; end if; end loop; @@ -507,12 +515,21 @@ begin end Len_Arg; begin + if save_argv /= null then + argv := save_argv; + argc := save_argc; + else + -- Case of a non gcc compiler, e.g. gnat2why or gnat2scil + argv := gnat_argv; + argc := gnat_argc; + end if; + -- Loop through arguments looking for -gnateT, also look for -gnatd.b - for Arg in 1 .. save_argc - 1 loop + for Arg in 1 .. argc - 1 loop declare - Argv_Ptr : constant Big_String_Ptr := save_argv (Arg); - Argv_Len : constant Nat := Len_Arg (Arg); + Argv_Ptr : constant Big_String_Ptr := argv (Arg); + Argv_Len : constant Nat := Len_Arg (Argv_Ptr); begin if Argv_Len > 8 diff --git a/gcc/ada/switch-c.adb b/gcc/ada/switch-c.adb index 9102507230a..9ab79c77e64 100644 --- a/gcc/ada/switch-c.adb +++ b/gcc/ada/switch-c.adb @@ -652,8 +652,7 @@ package body Switch.C is when 't' => if not First_Switch then Osint.Fail - ("-gnatet must be first if combined with " - & "other switches"); + ("-gnatet must not be combined with other switches"); end if; -- Check for '=' @@ -674,8 +673,7 @@ package body Switch.C is when 'T' => if not First_Switch then Osint.Fail - ("-gnateT must be first if combined with " - & "other switches"); + ("-gnateT must not be combined with other switches"); end if; -- Check for '=' -- 2.30.2