diff options
author | Bob Duff <duff@adacore.com> | 2018-05-23 10:23:34 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-05-23 10:23:34 +0000 |
commit | b77c24b8c0e484181de399ac7c46f2749add582d (patch) | |
tree | 72c496d5e9f0fae277a2ccaa734715e494d30744 | |
parent | b30f86de98a05244dbe3bf57f6afd170f2421f23 (diff) | |
download | gcc-b77c24b8c0e484181de399ac7c46f2749add582d.zip gcc-b77c24b8c0e484181de399ac7c46f2749add582d.tar.gz gcc-b77c24b8c0e484181de399ac7c46f2749add582d.tar.bz2 |
[Ada] gnatbind: do not list No_Implementation_Restrictions
When the gnatbind -r switch is used, do not list
No_Implementation_Restrictions, because after using the new restriction list,
No_Implementation_Restrictions will cause an error.
2018-05-23 Bob Duff <duff@adacore.com>
gcc/ada/
* gnatbind.adb (List_Applicable_Restrictions): Add
No_Implementation_Restrictions to the list of restrictions not to list.
Remove double negative "not No_Restriction_List". Comment the
commentary that is output, so it won't cause errors if used directly in
a gnat.adc.
From-SVN: r260593
-rw-r--r-- | gcc/ada/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/ada/gnatbind.adb | 46 |
2 files changed, 34 insertions, 20 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 1a4e63e..d77cecb 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,11 @@ +2018-05-23 Bob Duff <duff@adacore.com> + + * gnatbind.adb (List_Applicable_Restrictions): Add + No_Implementation_Restrictions to the list of restrictions not to list. + Remove double negative "not No_Restriction_List". Comment the + commentary that is output, so it won't cause errors if used directly in + a gnat.adc. + 2018-05-23 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on diff --git a/gcc/ada/gnatbind.adb b/gcc/ada/gnatbind.adb index dc0bac8..5ab1bf1 100644 --- a/gcc/ada/gnatbind.adb +++ b/gcc/ada/gnatbind.adb @@ -167,55 +167,61 @@ procedure Gnatbind is -- -r switch is used. Not all restrictions are output for the reasons -- given below in the list, and this array is used to test whether -- the corresponding pragma should be listed. True means that it - -- should not be listed. + -- should be listed. - No_Restriction_List : constant array (All_Restrictions) of Boolean := - (No_Standard_Allocators_After_Elaboration => True, + Restrictions_To_List : constant array (All_Restrictions) of Boolean := + (No_Standard_Allocators_After_Elaboration => False, -- This involves run-time conditions not checkable at compile time - No_Anonymous_Allocators => True, + No_Anonymous_Allocators => False, -- Premature, since we have not implemented this yet - No_Exception_Propagation => True, + No_Exception_Propagation => False, -- Modifies code resulting in different exception semantics - No_Exceptions => True, + No_Exceptions => False, -- Has unexpected Suppress (All_Checks) effect - No_Implicit_Conditionals => True, + No_Implicit_Conditionals => False, -- This could modify and pessimize generated code - No_Implicit_Dynamic_Code => True, + No_Implicit_Dynamic_Code => False, -- This could modify and pessimize generated code - No_Implicit_Loops => True, + No_Implicit_Loops => False, -- This could modify and pessimize generated code - No_Recursion => True, + No_Recursion => False, -- Not checkable at compile time - No_Reentrancy => True, + No_Reentrancy => False, -- Not checkable at compile time - Max_Entry_Queue_Length => True, + Max_Entry_Queue_Length => False, -- Not checkable at compile time - Max_Storage_At_Blocking => True, + Max_Storage_At_Blocking => False, -- Not checkable at compile time + No_Implementation_Restrictions => False, + -- Listing this one would cause a chicken&egg problem; the program + -- doesn't use implementation-defined restrictions, but after + -- applying the listed restrictions, it probably WILL use them, + -- so No_Implementation_Restrictions will cause an error. + -- The following three should not be partition-wide, so the -- following tests are junk to be removed eventually ??? - No_Specification_Of_Aspect => True, + No_Specification_Of_Aspect => False, -- Requires a parameter value, not a count - No_Use_Of_Attribute => True, + No_Use_Of_Attribute => False, -- Requires a parameter value, not a count - No_Use_Of_Pragma => True, + No_Use_Of_Pragma => False, -- Requires a parameter value, not a count - others => False); + others => True); Additional_Restrictions_Listed : Boolean := False; -- Set True if we have listed header for restrictions @@ -279,14 +285,14 @@ procedure Gnatbind is -- Loop through restrictions for R in All_Restrictions loop - if not No_Restriction_List (R) + if Restrictions_To_List (R) and then Restriction_Could_Be_Set (R) then if not Additional_Restrictions_Listed then Write_Eol; Write_Line - ("The following additional restrictions may be applied to " - & "this partition:"); + ("-- The following additional restrictions may be applied " + & "to this partition:"); Additional_Restrictions_Listed := True; end if; |