summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch12.adb
diff options
context:
space:
mode:
authorPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2017-11-09 13:09:17 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2017-11-09 13:09:17 +0000
commit65e5747ef72a7e1180727e6bf03fff9ad2dd097e (patch)
treebcbbc4c0bc36e6d55147e0e94896a83f1d2ccccb /gcc/ada/sem_ch12.adb
parentd7a9512ea9131eed5202e670577741f768626244 (diff)
downloadgcc-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.adb19
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;