diff options
author | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2017-11-09 13:09:17 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2017-11-09 13:09:17 +0000 |
commit | 65e5747ef72a7e1180727e6bf03fff9ad2dd097e (patch) | |
tree | bcbbc4c0bc36e6d55147e0e94896a83f1d2ccccb /gcc/ada/sem_ch12.adb | |
parent | d7a9512ea9131eed5202e670577741f768626244 (diff) | |
download | gcc-65e5747ef72a7e1180727e6bf03fff9ad2dd097e.tar.gz |
[multiple changes]
2017-11-09 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Handle properly
the pragma Compile_Time_Error when it appears in a generic package
declaration and uses an expanded name to denote the current unit.
2017-11-09 Jerome Lambourg <lambourg@adacore.com>
* libgnarl/s-taprop__qnx.adb: Fix incorrect casing for pthread_self.
* tracebak.c: Add support for tracebacks in QNX.
2017-11-09 Eric Botcazou <ebotcazou@adacore.com>
* exp_aggr.adb (Aggr_Size_OK): Bump base limit from 50000 to 500000.
2017-11-09 Yannick Moy <moy@adacore.com>
* erroutc.adb, set_targ.adb: Remove pragma Annotate for CodePeer
justification.
2017-11-09 Joel Brobecker <brobecker@adacore.com>
* doc/gnat_ugn/platform_specific_information.rst: Document packages
needed on GNU/Linux by GNAT.
* gnat_ugn.texi: Regenerate.
2017-11-09 Hristian Kirtchev <kirtchev@adacore.com>
* contracts.adb (Analyze_Contracts): Remove the three parameter
version. This routine now only analyzes contracts and does not perform
any freezing actions.
(Analyze_Previous_Contracts): Removed.
(Freeze_Previous_Contracts): New routine.
* contracts.ads (Analyze_Previous_Contracts): Removed.
(Freeze_Previous_Contracts): New routine.
* sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
enclosing package spec regardless of whether the list denotes the
visible or private declarations. Fix the removal of partial state
refinements when the context is a package spec.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Freeze previous
contracts.
* sem_ch7.adb (Analyze_Package_Body_Helper): Freeze previous contracts.
* sem_ch9.adb (Analyze_Entry_Body): Freeze previous contracts.
(Analyze_Protected_Body): Freeze previous contracts.
(Analyze_Task_Body): Freeze previous contracts.
* sem_prag.adb: Comment reformatting.
2017-11-09 Bob Duff <duff@adacore.com>
* libgnarl/g-thread.ads, libgnarl/g-thread.adb: (Make_Independent):
Export this so users can use it without importing
System.Tasking.Utilities.
* libgnarl/s-tassta.adb (Vulnerable_Complete_Task): Relax assertion
that fails when Make_Independent is called on a user task.
* libgnarl/s-taskin.ads (Master_Of_Task): Avoid unusual
capitalization style ((style) bad casing of "Master_of_Task").
From-SVN: r254580
Diffstat (limited to 'gcc/ada/sem_ch12.adb')
-rw-r--r-- | gcc/ada/sem_ch12.adb | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index 7aca1d9236f..23f9ca7c223 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -3466,9 +3466,9 @@ package body Sem_Ch12 is ------------------------------------------ procedure Analyze_Generic_Package_Declaration (N : Node_Id) is - Loc : constant Source_Ptr := Sloc (N); - Decls : constant List_Id := - Visible_Declarations (Specification (N)); + Decls : constant List_Id := Visible_Declarations (Specification (N)); + Loc : constant Source_Ptr := Sloc (N); + Decl : Node_Id; Id : Entity_Id; New_N : Node_Id; @@ -3492,9 +3492,20 @@ package body Sem_Ch12 is Name => Make_Identifier (Loc, Chars (Defining_Entity (N)))); + -- The declaration is inserted before other declarations, but before + -- pragmas that may be library-unit pragmas and must appear before other + -- declarations. The pragma Compile_Time_Error is not in this class, and + -- may contain an expression that includes such a qualified name, so the + -- renaming declaration must appear before it. + + -- Are there other pragmas that require this special handling ??? + if Present (Decls) then Decl := First (Decls); - while Present (Decl) and then Nkind (Decl) = N_Pragma loop + while Present (Decl) + and then Nkind (Decl) = N_Pragma + and then Get_Pragma_Id (Decl) /= Pragma_Compile_Time_Error + loop Next (Decl); end loop; |