sem_prag.adb: Minor reformatting.
authorRobert Dewar <dewar@adacore.com>
Fri, 4 Nov 2011 11:00:33 +0000 (11:00 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 4 Nov 2011 11:00:33 +0000 (12:00 +0100)
2011-11-04  Robert Dewar  <dewar@adacore.com>

* sem_prag.adb: Minor reformatting.
* gnat_rm.texi: Update documentation for pragma Warnings (Off,
"***") usage.
* exp_ch2.adb (Expand_Entity_Reference): Only set
Atomic_Sync_Required on entities that are variables. Doesn't
make any sense on anything else.

From-SVN: r180939

gcc/ada/ChangeLog
gcc/ada/exp_ch2.adb
gcc/ada/gnat_rm.texi
gcc/ada/sem_prag.adb

index 0d298e5..fc3e12b 100644 (file)
@@ -1,5 +1,14 @@
 2011-11-04  Robert Dewar  <dewar@adacore.com>
 
+       * sem_prag.adb: Minor reformatting.
+       * gnat_rm.texi: Update documentation for pragma Warnings (Off,
+       "***") usage.
+       * exp_ch2.adb (Expand_Entity_Reference): Only set
+       Atomic_Sync_Required on entities that are variables. Doesn't
+       make any sense on anything else.
+
+2011-11-04  Robert Dewar  <dewar@adacore.com>
+
        * exp_ch2.adb (Expand_Entity_Reference): Extend handling of
        atomic sync to type case.
        * sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can
index 24f47a7..a1337aa 100644 (file)
@@ -402,6 +402,7 @@ package body Exp_Ch2 is
       --  Set Atomic_Sync_Required if necessary for atomic variable
 
       if Nkind_In (N, N_Identifier, N_Expanded_Name)
+        and then Ekind (E) = E_Variable
         and then (Is_Atomic (E) or else Is_Atomic (Etype (E)))
       then
          declare
index 513bca2..170a912 100644 (file)
@@ -5575,7 +5575,7 @@ as possibly modified by compiler switches. Then each pragma Warning
 modifies this set of warnings as specified. This form of the pragma may
 also be used as a configuration pragma.
 
-The fourth form, with an On|Off parameter and a string, is used to
+The fourth form, with an @code{On|Off} parameter and a string, is used to
 control individual messages, based on their text. The string argument
 is a pattern that is used to match against the text of individual
 warning messages (not including the initial "warning: " tag).
@@ -5587,7 +5587,7 @@ message @code{warning: 960 bits of "a" unused}. No other regular
 expression notations are permitted. All characters other than asterisk in
 these three specific cases are treated as literal characters in the match.
 
-There are two ways to use this pragma. The OFF form can be used as a
+There are two ways to use the pragma in this form. The OFF form can be used as a
 configuration pragma. The effect is to suppress all warnings (if any)
 that match the pattern string throughout the compilation.
 
@@ -5604,6 +5604,13 @@ pragma Warnings (On, Pattern);
 In this usage, the pattern string must match in the Off and On pragmas,
 and at least one matching warning must be suppressed.
 
+Note: to write a string that will match any warning, use the string
+@code{"***"}. It will not work to use a single asterisk or two asterisks
+since this looks like an operator name. This form with three asterisks
+is similar in effect to specifying @code{pragma Warnings (Off)} except that a
+matching @code{pragma Warnings (On, "***")} will be required. This can be
+helpful in avoiding forgetting to turn warnings back on.
+
 Note: the debug flag -gnatd.i (@code{/NOWARNINGS_PRAGMAS} in VMS) can be
 used to cause the compiler to entirely ignore all WARNINGS pragmas. This can
 be useful in checking whether obsolete pragmas in existing programs are hiding
index e1bf31b..e4c02d5 100644 (file)
@@ -14395,7 +14395,7 @@ package body Sem_Prag is
                      --  actual is a conversion. Retrieve the real entity name.
 
                      if (In_Instance_Body
-                         or else In_Inlined_Body)
+                          or else In_Inlined_Body)
                        and then Nkind (E_Id) = N_Unchecked_Type_Conversion
                      then
                         E_Id := Expression (E_Id);