aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2018-05-23 10:23:34 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-23 10:23:34 +0000
commitb77c24b8c0e484181de399ac7c46f2749add582d (patch)
tree72c496d5e9f0fae277a2ccaa734715e494d30744
parentb30f86de98a05244dbe3bf57f6afd170f2421f23 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/ada/gnatbind.adb46
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;