===================================================================
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
+-- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -121,8 +121,8 @@
Write_Eol;
-- Individual lines for switches. Write_Switch_Char outputs fourteen
- -- characters, so the remaining message is allowed to be a maximum
- -- of 65 characters to be comfortable in an 80 character window.
+ -- characters, so the remaining message is allowed to be a maximum of
+ -- 65 characters to be comfortable in an 80 character window.
-- Line for -gnata switch
@@ -494,16 +494,8 @@
Write_Line (" .C* turn off warnings for unrepped components");
Write_Line (" d turn on warnings for implicit dereference");
Write_Line (" D* turn off warnings for implicit dereference");
-
- -- Switches -gnatw.d/w.D not available on VMS
-
- if not OpenVMS_On_Target then
- Write_Line
- (" .d turn on tagging of warnings with -gnatw switch");
- Write_Line
- (" .D* turn off tagging of warnings with -gnatw switch");
- end if;
-
+ Write_Line (" .d turn on tagging of warnings with -gnatw switch");
+ Write_Line (" .D* turn off tagging of warnings with -gnatw switch");
Write_Line (" e treat all warnings (but not info) as errors");
Write_Line (" .e turn on every optional info/warning " &
"(no exceptions)");
@@ -511,6 +503,7 @@
Write_Line (" F* turn off warnings for unreferenced formal");
Write_Line (" g*+ turn on warnings for unrecognized pragma");
Write_Line (" G turn off warnings for unrecognized pragma");
+ Write_Line (" .g turn on GNAT warnings, same as Aao.sI.C.V.X");
Write_Line (" h turn on warnings for hiding declarations");
Write_Line (" H* turn off warnings for hiding declarations");
Write_Line (" .h turn on warnings for holes in records");
@@ -640,7 +633,7 @@
Write_Line (" d check no DOS line terminators");
Write_Line (" e check end/exit labels present");
Write_Line (" f check no form feeds/vertical tabs in source");
- Write_Line (" g check standard GNAT style rules");
+ Write_Line (" g check standard GNAT style rules, same as ydISux");
Write_Line (" h check no horizontal tabs in source");
Write_Line (" i check if-then layout");
Write_Line (" I check mode in");
===================================================================
@@ -4018,7 +4018,7 @@
applications programs, it is intended only for use by the compiler
and its run-time library. For documentation, see the GNAT sources.
Note that @option{^-gnatg^/GNAT_INTERNAL^} implies
-@option{^-gnatwae^/WARNINGS=ALL,ERRORS^} and
+@option{^-gnatw.ge^/WARNINGS=GNAT,ERRORS^} and
@option{^-gnatyg^/STYLE_CHECKS=GNAT^}
so that all standard warnings and all standard style options are turned on.
All warnings and style messages are treated as errors.
@@ -5167,6 +5167,14 @@
@cindex @option{-gnatwG} (@command{gcc})
This switch suppresses warnings for unrecognized pragmas.
+@item -gnatw.g
+@emph{Warnings used for GNAT sources}
+@cindex @option{-gnatw.g} (@command{gcc})
+This switch sets the warning categories that are used by the standard
+GNAT style. Currently this is equivalent to
+@option{-gnatwAao.sI.C.V.X}
+but more warnings may be added in the future without advanced notice.
+
@item -gnatwh
@emph{Activate warnings on hiding.}
@cindex @option{-gnatwh} (@command{gcc})
@@ -6381,7 +6389,9 @@
@emph{GNAT style mode.}
The set of style check switches is set to match that used by the GNAT sources.
This may be useful when developing code that is eventually intended to be
-incorporated into GNAT. For further details, see GNAT sources.
+incorporated into GNAT. Currently this is equivalent to @option{-gnatwydISux})
+but additional style switches may be added to this set in the future without
+advance notice.
@item ^h^HTABS^
@emph{No horizontal tabs.}
===================================================================
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
+-- Copyright (C) 1999-2014, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,6 +29,65 @@
package body Warnsw is
+ -- Local Subprograms
+
+ procedure All_Warnings (Setting : Boolean);
+ -- Sets all warnings off if Setting = False, and on if Setting = True
+
+ procedure WA_Warnings;
+ -- Turn on all warnings set by -gnatwa (also used by -gnatw.g)
+
+ ------------------
+ -- All_Warnings --
+ ------------------
+
+ procedure All_Warnings (Setting : Boolean) is
+ begin
+ Address_Clause_Overlay_Warnings := Setting;
+ Check_Unreferenced := Setting;
+ Check_Unreferenced_Formals := Setting;
+ Check_Withs := Setting;
+ Constant_Condition_Warnings := Setting;
+ Elab_Warnings := Setting;
+ Implementation_Unit_Warnings := Setting;
+ Ineffective_Inline_Warnings := Setting;
+ List_Body_Required_Info := Setting;
+ List_Inherited_Aspects := Setting;
+ Warn_On_Ada_2005_Compatibility := Setting;
+ Warn_On_Ada_2012_Compatibility := Setting;
+ Warn_On_All_Unread_Out_Parameters := Setting;
+ Warn_On_Assertion_Failure := Setting;
+ Warn_On_Assumed_Low_Bound := Setting;
+ Warn_On_Atomic_Synchronization := Setting;
+ Warn_On_Bad_Fixed_Value := Setting;
+ Warn_On_Biased_Representation := Setting;
+ Warn_On_Constant := Setting;
+ Warn_On_Deleted_Code := Setting;
+ Warn_On_Dereference := Setting;
+ Warn_On_Export_Import := Setting;
+ Warn_On_Hiding := Setting;
+ Warn_On_Modified_Unread := Setting;
+ Warn_On_No_Value_Assigned := Setting;
+ Warn_On_Non_Local_Exception := Setting;
+ Warn_On_Object_Renames_Function := Setting;
+ Warn_On_Obsolescent_Feature := Setting;
+ Warn_On_Overlap := Setting;
+ Warn_On_Overridden_Size := Setting;
+ Warn_On_Parameter_Order := Setting;
+ Warn_On_Questionable_Missing_Parens := Setting;
+ Warn_On_Record_Holes := Setting;
+ Warn_On_Redundant_Constructs := Setting;
+ Warn_On_Reverse_Bit_Order := Setting;
+ Warn_On_Standard_Redefinition := Setting;
+ Warn_On_Suspicious_Contract := Setting;
+ Warn_On_Suspicious_Modulus_Value := Setting;
+ Warn_On_Unchecked_Conversion := Setting;
+ Warn_On_Unordered_Enumeration_Type := Setting;
+ Warn_On_Unrecognized_Pragma := Setting;
+ Warn_On_Unrepped_Components := Setting;
+ Warn_On_Warnings_Off := Setting;
+ end All_Warnings;
+
----------------------
-- Restore_Warnings --
----------------------
@@ -57,6 +116,8 @@
W.List_Body_Required_Info;
List_Inherited_Aspects :=
W.List_Inherited_Aspects;
+ No_Warn_On_Non_Local_Exception :=
+ W.No_Warn_On_Non_Local_Exception;
Warning_Doc_Switch :=
W.Warning_Doc_Switch;
Warn_On_Ada_2005_Compatibility :=
@@ -155,6 +216,8 @@
List_Body_Required_Info;
W.List_Inherited_Aspects :=
List_Inherited_Aspects;
+ W.No_Warn_On_Non_Local_Exception :=
+ No_Warn_On_Non_Local_Exception;
W.Warning_Doc_Switch :=
Warning_Doc_Switch;
W.Warn_On_Ada_2005_Compatibility :=
@@ -221,7 +284,6 @@
Warn_On_Unrepped_Components;
W.Warn_On_Warnings_Off :=
Warn_On_Warnings_Off;
-
return W;
end Save_Warnings;
@@ -257,48 +319,7 @@
Warning_Doc_Switch := False;
when 'e' =>
- Address_Clause_Overlay_Warnings := True;
- Check_Unreferenced := True;
- Check_Unreferenced_Formals := True;
- Check_Withs := True;
- Constant_Condition_Warnings := True;
- Elab_Warnings := True;
- Implementation_Unit_Warnings := True;
- Ineffective_Inline_Warnings := True;
- List_Body_Required_Info := True;
- List_Inherited_Aspects := True;
- Warn_On_Ada_2005_Compatibility := True;
- Warn_On_Ada_2012_Compatibility := True;
- Warn_On_All_Unread_Out_Parameters := True;
- Warn_On_Assertion_Failure := True;
- Warn_On_Assumed_Low_Bound := True;
- Warn_On_Atomic_Synchronization := True;
- Warn_On_Bad_Fixed_Value := True;
- Warn_On_Biased_Representation := True;
- Warn_On_Constant := True;
- Warn_On_Deleted_Code := True;
- Warn_On_Dereference := True;
- Warn_On_Export_Import := True;
- Warn_On_Hiding := True;
- Warn_On_Modified_Unread := True;
- Warn_On_No_Value_Assigned := True;
- Warn_On_Non_Local_Exception := True;
- Warn_On_Object_Renames_Function := True;
- Warn_On_Obsolescent_Feature := True;
- Warn_On_Overlap := True;
- Warn_On_Overridden_Size := True;
- Warn_On_Parameter_Order := True;
- Warn_On_Questionable_Missing_Parens := True;
- Warn_On_Record_Holes := True;
- Warn_On_Redundant_Constructs := True;
- Warn_On_Reverse_Bit_Order := True;
- Warn_On_Standard_Redefinition := True;
- Warn_On_Suspicious_Contract := True;
- Warn_On_Unchecked_Conversion := True;
- Warn_On_Unordered_Enumeration_Type := True;
- Warn_On_Unrecognized_Pragma := True;
- Warn_On_Unrepped_Components := True;
- Warn_On_Warnings_Off := True;
+ All_Warnings (True);
when 'g' =>
Set_GNAT_Mode_Warnings;
@@ -417,48 +438,23 @@
procedure Set_GNAT_Mode_Warnings is
begin
+ -- Set -gnatwa warnings and no others
+
+ All_Warnings (False);
+ WA_Warnings;
+
+ -- These warnings are added to the -gnatwa set
+
Address_Clause_Overlay_Warnings := True;
- Check_Unreferenced := True;
- Check_Unreferenced_Formals := True;
- Check_Withs := True;
- Constant_Condition_Warnings := True;
- Elab_Warnings := False;
+ Warn_On_Overridden_Size := True;
+
+ -- These warnings are removed from the -gnatwa set
+
Implementation_Unit_Warnings := False;
- Ineffective_Inline_Warnings := True;
- List_Body_Required_Info := False;
- List_Inherited_Aspects := False;
- Warning_Doc_Switch := False;
- Warn_On_Ada_2005_Compatibility := True;
- Warn_On_Ada_2012_Compatibility := True;
- Warn_On_All_Unread_Out_Parameters := False;
- Warn_On_Assertion_Failure := True;
- Warn_On_Assumed_Low_Bound := True;
- Warn_On_Atomic_Synchronization := False;
- Warn_On_Bad_Fixed_Value := True;
- Warn_On_Biased_Representation := True;
- Warn_On_Constant := True;
- Warn_On_Deleted_Code := False;
- Warn_On_Dereference := False;
- Warn_On_Export_Import := True;
- Warn_On_Hiding := False;
- Warn_On_Modified_Unread := True;
- Warn_On_No_Value_Assigned := True;
Warn_On_Non_Local_Exception := False;
- Warn_On_Object_Renames_Function := True;
- Warn_On_Obsolescent_Feature := True;
- Warn_On_Overlap := True;
- Warn_On_Overridden_Size := True;
- Warn_On_Parameter_Order := True;
- Warn_On_Questionable_Missing_Parens := True;
- Warn_On_Record_Holes := False;
- Warn_On_Redundant_Constructs := True;
+ No_Warn_On_Non_Local_Exception := True;
Warn_On_Reverse_Bit_Order := False;
- Warn_On_Suspicious_Contract := True;
- Warn_On_Unchecked_Conversion := True;
- Warn_On_Unordered_Enumeration_Type := False;
- Warn_On_Unrecognized_Pragma := True;
Warn_On_Unrepped_Components := False;
- Warn_On_Warnings_Off := False;
end Set_GNAT_Mode_Warnings;
------------------------
@@ -469,80 +465,10 @@
begin
case C is
when 'a' =>
- Check_Unreferenced := True;
- Check_Unreferenced_Formals := True;
- Check_Withs := True;
- Constant_Condition_Warnings := True;
- Implementation_Unit_Warnings := True;
- Ineffective_Inline_Warnings := True;
- Warn_On_Ada_2005_Compatibility := True;
- Warn_On_Ada_2012_Compatibility := True;
- Warn_On_Assertion_Failure := True;
- Warn_On_Assumed_Low_Bound := True;
- Warn_On_Bad_Fixed_Value := True;
- Warn_On_Biased_Representation := True;
- Warn_On_Constant := True;
- Warn_On_Export_Import := True;
- Warn_On_Modified_Unread := True;
- Warn_On_No_Value_Assigned := True;
- Warn_On_Non_Local_Exception := True;
- Warn_On_Object_Renames_Function := True;
- Warn_On_Obsolescent_Feature := True;
- Warn_On_Overlap := True;
- Warn_On_Parameter_Order := True;
- Warn_On_Questionable_Missing_Parens := True;
- Warn_On_Redundant_Constructs := True;
- Warn_On_Reverse_Bit_Order := True;
- Warn_On_Suspicious_Contract := True;
- Warn_On_Unchecked_Conversion := True;
- Warn_On_Unrecognized_Pragma := True;
- Warn_On_Unrepped_Components := True;
+ WA_Warnings;
when 'A' =>
- Address_Clause_Overlay_Warnings := False;
- Check_Unreferenced := False;
- Check_Unreferenced_Formals := False;
- Check_Withs := False;
- Constant_Condition_Warnings := False;
- Elab_Warnings := False;
- Implementation_Unit_Warnings := False;
- Ineffective_Inline_Warnings := False;
- List_Body_Required_Info := False;
- List_Inherited_Aspects := False;
- Warning_Doc_Switch := False;
- Warn_On_Ada_2005_Compatibility := False;
- Warn_On_Ada_2012_Compatibility := False;
- Warn_On_All_Unread_Out_Parameters := False;
- Warn_On_Assertion_Failure := False;
- Warn_On_Assumed_Low_Bound := False;
- Warn_On_Bad_Fixed_Value := False;
- Warn_On_Biased_Representation := False;
- Warn_On_Constant := False;
- Warn_On_Deleted_Code := False;
- Warn_On_Dereference := False;
- Warn_On_Export_Import := False;
- Warn_On_Hiding := False;
- Warn_On_Modified_Unread := False;
- Warn_On_No_Value_Assigned := False;
- Warn_On_Non_Local_Exception := False;
- Warn_On_Object_Renames_Function := False;
- Warn_On_Obsolescent_Feature := False;
- Warn_On_Overlap := False;
- Warn_On_Overridden_Size := False;
- Warn_On_Parameter_Order := False;
- Warn_On_Record_Holes := False;
- Warn_On_Questionable_Missing_Parens := False;
- Warn_On_Redundant_Constructs := False;
- Warn_On_Reverse_Bit_Order := False;
- Warn_On_Standard_Redefinition := False;
- Warn_On_Suspicious_Contract := False;
- Warn_On_Suspicious_Modulus_Value := False;
- Warn_On_Unchecked_Conversion := False;
- Warn_On_Unordered_Enumeration_Type := False;
- Warn_On_Unrecognized_Pragma := False;
- Warn_On_Unrepped_Components := False;
- Warn_On_Warnings_Off := False;
-
+ All_Warnings (False);
No_Warn_On_Non_Local_Exception := True;
when 'b' =>
@@ -704,4 +630,40 @@
return True;
end Set_Warning_Switch;
+ -----------------
+ -- WA_Warnings --
+ -----------------
+
+ procedure WA_Warnings is
+ begin
+ Check_Unreferenced := True;
+ Check_Unreferenced_Formals := True;
+ Check_Withs := True;
+ Constant_Condition_Warnings := True;
+ Implementation_Unit_Warnings := True;
+ Ineffective_Inline_Warnings := True;
+ Warn_On_Ada_2005_Compatibility := True;
+ Warn_On_Ada_2012_Compatibility := True;
+ Warn_On_Assertion_Failure := True;
+ Warn_On_Assumed_Low_Bound := True;
+ Warn_On_Bad_Fixed_Value := True;
+ Warn_On_Biased_Representation := True;
+ Warn_On_Constant := True;
+ Warn_On_Export_Import := True;
+ Warn_On_Modified_Unread := True;
+ Warn_On_No_Value_Assigned := True;
+ Warn_On_Non_Local_Exception := True;
+ Warn_On_Object_Renames_Function := True;
+ Warn_On_Obsolescent_Feature := True;
+ Warn_On_Overlap := True;
+ Warn_On_Parameter_Order := True;
+ Warn_On_Questionable_Missing_Parens := True;
+ Warn_On_Redundant_Constructs := True;
+ Warn_On_Reverse_Bit_Order := True;
+ Warn_On_Suspicious_Contract := True;
+ Warn_On_Unchecked_Conversion := True;
+ Warn_On_Unrecognized_Pragma := True;
+ Warn_On_Unrepped_Components := True;
+ end WA_Warnings;
+
end Warnsw;
===================================================================
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
+-- Copyright (C) 1999-2014, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -71,6 +71,7 @@
Ineffective_Inline_Warnings : Boolean;
List_Body_Required_Info : Boolean;
List_Inherited_Aspects : Boolean;
+ No_Warn_On_Non_Local_Exception : Boolean;
Warning_Doc_Switch : Boolean;
Warn_On_Ada_2005_Compatibility : Boolean;
Warn_On_Ada_2012_Compatibility : Boolean;
@@ -99,6 +100,7 @@
Warn_On_Reverse_Bit_Order : Boolean;
Warn_On_Standard_Redefinition : Boolean;
Warn_On_Suspicious_Contract : Boolean;
+ Warn_On_Suspicious_Modulus_Value : Boolean;
Warn_On_Unchecked_Conversion : Boolean;
Warn_On_Unordered_Enumeration_Type : Boolean;
Warn_On_Unrecognized_Pragma : Boolean;