aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/ada/warnsw.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/ada/warnsw.adb')
-rw-r--r--gcc-4.9/gcc/ada/warnsw.adb707
1 files changed, 707 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/ada/warnsw.adb b/gcc-4.9/gcc/ada/warnsw.adb
new file mode 100644
index 000000000..f07fdf929
--- /dev/null
+++ b/gcc-4.9/gcc/ada/warnsw.adb
@@ -0,0 +1,707 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
+-- --
+-- W A R N S W --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 1999-2013, 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- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
+-- for more details. You should have received a copy of the GNU General --
+-- Public License distributed with GNAT; see file COPYING3. If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Err_Vars; use Err_Vars;
+with Opt; use Opt;
+with Output; use Output;
+
+package body Warnsw is
+
+ ----------------------
+ -- Restore_Warnings --
+ ----------------------
+
+ procedure Restore_Warnings (W : Warning_Record) is
+ begin
+ Address_Clause_Overlay_Warnings :=
+ W.Address_Clause_Overlay_Warnings;
+ Check_Unreferenced :=
+ W.Check_Unreferenced;
+ Check_Unreferenced_Formals :=
+ W.Check_Unreferenced_Formals;
+ Check_Withs :=
+ W.Check_Withs;
+ Constant_Condition_Warnings :=
+ W.Constant_Condition_Warnings;
+ Elab_Warnings :=
+ W.Elab_Warnings;
+ Elab_Info_Messages :=
+ W.Elab_Info_Messages;
+ Implementation_Unit_Warnings :=
+ W.Implementation_Unit_Warnings;
+ Ineffective_Inline_Warnings :=
+ W.Ineffective_Inline_Warnings;
+ List_Body_Required_Info :=
+ W.List_Body_Required_Info;
+ List_Inherited_Aspects :=
+ W.List_Inherited_Aspects;
+ Warning_Doc_Switch :=
+ W.Warning_Doc_Switch;
+ Warn_On_Ada_2005_Compatibility :=
+ W.Warn_On_Ada_2005_Compatibility;
+ Warn_On_Ada_2012_Compatibility :=
+ W.Warn_On_Ada_2012_Compatibility;
+ Warn_On_All_Unread_Out_Parameters :=
+ W.Warn_On_All_Unread_Out_Parameters;
+ Warn_On_Assertion_Failure :=
+ W.Warn_On_Assertion_Failure;
+ Warn_On_Assumed_Low_Bound :=
+ W.Warn_On_Assumed_Low_Bound;
+ Warn_On_Atomic_Synchronization :=
+ W.Warn_On_Atomic_Synchronization;
+ Warn_On_Bad_Fixed_Value :=
+ W.Warn_On_Bad_Fixed_Value;
+ Warn_On_Biased_Representation :=
+ W.Warn_On_Biased_Representation;
+ Warn_On_Constant :=
+ W.Warn_On_Constant;
+ Warn_On_Deleted_Code :=
+ W.Warn_On_Deleted_Code;
+ Warn_On_Dereference :=
+ W.Warn_On_Dereference;
+ Warn_On_Export_Import :=
+ W.Warn_On_Export_Import;
+ Warn_On_Hiding :=
+ W.Warn_On_Hiding;
+ Warn_On_Modified_Unread :=
+ W.Warn_On_Modified_Unread;
+ Warn_On_No_Value_Assigned :=
+ W.Warn_On_No_Value_Assigned;
+ Warn_On_Non_Local_Exception :=
+ W.Warn_On_Non_Local_Exception;
+ Warn_On_Object_Renames_Function :=
+ W.Warn_On_Object_Renames_Function;
+ Warn_On_Obsolescent_Feature :=
+ W.Warn_On_Obsolescent_Feature;
+ Warn_On_Overlap :=
+ W.Warn_On_Overlap;
+ Warn_On_Overridden_Size :=
+ W.Warn_On_Overridden_Size;
+ Warn_On_Parameter_Order :=
+ W.Warn_On_Parameter_Order;
+ Warn_On_Questionable_Missing_Parens :=
+ W.Warn_On_Questionable_Missing_Parens;
+ Warn_On_Record_Holes :=
+ W.Warn_On_Record_Holes;
+ Warn_On_Redundant_Constructs :=
+ W.Warn_On_Redundant_Constructs;
+ Warn_On_Reverse_Bit_Order :=
+ W.Warn_On_Reverse_Bit_Order;
+ Warn_On_Standard_Redefinition :=
+ W.Warn_On_Standard_Redefinition;
+ Warn_On_Suspicious_Contract :=
+ W.Warn_On_Suspicious_Contract;
+ Warn_On_Unchecked_Conversion :=
+ W.Warn_On_Unchecked_Conversion;
+ Warn_On_Unordered_Enumeration_Type :=
+ W.Warn_On_Unordered_Enumeration_Type;
+ Warn_On_Unrecognized_Pragma :=
+ W.Warn_On_Unrecognized_Pragma;
+ Warn_On_Unrepped_Components :=
+ W.Warn_On_Unrepped_Components;
+ Warn_On_Warnings_Off :=
+ W.Warn_On_Warnings_Off;
+ end Restore_Warnings;
+
+ -------------------
+ -- Save_Warnings --
+ -------------------
+
+ function Save_Warnings return Warning_Record is
+ W : Warning_Record;
+
+ begin
+ W.Address_Clause_Overlay_Warnings :=
+ Address_Clause_Overlay_Warnings;
+ W.Check_Unreferenced :=
+ Check_Unreferenced;
+ W.Check_Unreferenced_Formals :=
+ Check_Unreferenced_Formals;
+ W.Check_Withs :=
+ Check_Withs;
+ W.Constant_Condition_Warnings :=
+ Constant_Condition_Warnings;
+ W.Elab_Info_Messages :=
+ Elab_Info_Messages;
+ W.Elab_Warnings :=
+ Elab_Warnings;
+ W.Implementation_Unit_Warnings :=
+ Implementation_Unit_Warnings;
+ W.Ineffective_Inline_Warnings :=
+ Ineffective_Inline_Warnings;
+ W.List_Body_Required_Info :=
+ List_Body_Required_Info;
+ W.List_Inherited_Aspects :=
+ List_Inherited_Aspects;
+ W.Warning_Doc_Switch :=
+ Warning_Doc_Switch;
+ W.Warn_On_Ada_2005_Compatibility :=
+ Warn_On_Ada_2005_Compatibility;
+ W.Warn_On_Ada_2012_Compatibility :=
+ Warn_On_Ada_2012_Compatibility;
+ W.Warn_On_All_Unread_Out_Parameters :=
+ Warn_On_All_Unread_Out_Parameters;
+ W.Warn_On_Assertion_Failure :=
+ Warn_On_Assertion_Failure;
+ W.Warn_On_Assumed_Low_Bound :=
+ Warn_On_Assumed_Low_Bound;
+ W.Warn_On_Atomic_Synchronization :=
+ Warn_On_Atomic_Synchronization;
+ W.Warn_On_Bad_Fixed_Value :=
+ Warn_On_Bad_Fixed_Value;
+ W.Warn_On_Biased_Representation :=
+ Warn_On_Biased_Representation;
+ W.Warn_On_Constant :=
+ Warn_On_Constant;
+ W.Warn_On_Deleted_Code :=
+ Warn_On_Deleted_Code;
+ W.Warn_On_Dereference :=
+ Warn_On_Dereference;
+ W.Warn_On_Export_Import :=
+ Warn_On_Export_Import;
+ W.Warn_On_Hiding :=
+ Warn_On_Hiding;
+ W.Warn_On_Modified_Unread :=
+ Warn_On_Modified_Unread;
+ W.Warn_On_No_Value_Assigned :=
+ Warn_On_No_Value_Assigned;
+ W.Warn_On_Non_Local_Exception :=
+ Warn_On_Non_Local_Exception;
+ W.Warn_On_Object_Renames_Function :=
+ Warn_On_Object_Renames_Function;
+ W.Warn_On_Obsolescent_Feature :=
+ Warn_On_Obsolescent_Feature;
+ W.Warn_On_Overlap :=
+ Warn_On_Overlap;
+ W.Warn_On_Overridden_Size :=
+ Warn_On_Overridden_Size;
+ W.Warn_On_Parameter_Order :=
+ Warn_On_Parameter_Order;
+ W.Warn_On_Questionable_Missing_Parens :=
+ Warn_On_Questionable_Missing_Parens;
+ W.Warn_On_Record_Holes :=
+ Warn_On_Record_Holes;
+ W.Warn_On_Redundant_Constructs :=
+ Warn_On_Redundant_Constructs;
+ W.Warn_On_Reverse_Bit_Order :=
+ Warn_On_Reverse_Bit_Order;
+ W.Warn_On_Standard_Redefinition :=
+ Warn_On_Standard_Redefinition;
+ W.Warn_On_Suspicious_Contract :=
+ Warn_On_Suspicious_Contract;
+ W.Warn_On_Unchecked_Conversion :=
+ Warn_On_Unchecked_Conversion;
+ W.Warn_On_Unordered_Enumeration_Type :=
+ Warn_On_Unordered_Enumeration_Type;
+ W.Warn_On_Unrecognized_Pragma :=
+ Warn_On_Unrecognized_Pragma;
+ W.Warn_On_Unrepped_Components :=
+ Warn_On_Unrepped_Components;
+ W.Warn_On_Warnings_Off :=
+ Warn_On_Warnings_Off;
+
+ return W;
+ end Save_Warnings;
+
+ ----------------------------
+ -- Set_Dot_Warning_Switch --
+ ----------------------------
+
+ function Set_Dot_Warning_Switch (C : Character) return Boolean is
+ begin
+ case C is
+ when 'a' =>
+ Warn_On_Assertion_Failure := True;
+
+ when 'A' =>
+ Warn_On_Assertion_Failure := False;
+
+ when 'b' =>
+ Warn_On_Biased_Representation := True;
+
+ when 'B' =>
+ Warn_On_Biased_Representation := False;
+
+ when 'c' =>
+ Warn_On_Unrepped_Components := True;
+
+ when 'C' =>
+ Warn_On_Unrepped_Components := False;
+
+ when 'd' =>
+ Warning_Doc_Switch := True;
+
+ when 'D' =>
+ 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;
+
+ when 'g' =>
+ Set_GNAT_Mode_Warnings;
+
+ when 'h' =>
+ Warn_On_Record_Holes := True;
+
+ when 'H' =>
+ Warn_On_Record_Holes := False;
+
+ when 'i' =>
+ Warn_On_Overlap := True;
+
+ when 'I' =>
+ Warn_On_Overlap := False;
+
+ when 'k' =>
+ Warn_On_Standard_Redefinition := True;
+
+ when 'K' =>
+ Warn_On_Standard_Redefinition := False;
+
+ when 'l' =>
+ List_Inherited_Aspects := True;
+
+ when 'L' =>
+ List_Inherited_Aspects := False;
+
+ when 'm' =>
+ Warn_On_Suspicious_Modulus_Value := True;
+
+ when 'M' =>
+ Warn_On_Suspicious_Modulus_Value := False;
+
+ when 'n' =>
+ Warn_On_Atomic_Synchronization := True;
+
+ when 'N' =>
+ Warn_On_Atomic_Synchronization := False;
+
+ when 'o' =>
+ Warn_On_All_Unread_Out_Parameters := True;
+
+ when 'O' =>
+ Warn_On_All_Unread_Out_Parameters := False;
+
+ when 'p' =>
+ Warn_On_Parameter_Order := True;
+
+ when 'P' =>
+ Warn_On_Parameter_Order := False;
+
+ when 'r' =>
+ Warn_On_Object_Renames_Function := True;
+
+ when 'R' =>
+ Warn_On_Object_Renames_Function := False;
+
+ when 's' =>
+ Warn_On_Overridden_Size := True;
+
+ when 'S' =>
+ Warn_On_Overridden_Size := False;
+
+ when 't' =>
+ Warn_On_Suspicious_Contract := True;
+
+ when 'T' =>
+ Warn_On_Suspicious_Contract := False;
+
+ when 'u' =>
+ Warn_On_Unordered_Enumeration_Type := True;
+
+ when 'U' =>
+ Warn_On_Unordered_Enumeration_Type := False;
+
+ when 'v' =>
+ Warn_On_Reverse_Bit_Order := True;
+
+ when 'V' =>
+ Warn_On_Reverse_Bit_Order := False;
+
+ when 'w' =>
+ Warn_On_Warnings_Off := True;
+
+ when 'W' =>
+ Warn_On_Warnings_Off := False;
+
+ when 'x' =>
+ Warn_On_Non_Local_Exception := True;
+
+ when 'X' =>
+ Warn_On_Non_Local_Exception := False;
+ No_Warn_On_Non_Local_Exception := True;
+
+ when 'y' =>
+ List_Body_Required_Info := True;
+
+ when 'Y' =>
+ List_Body_Required_Info := False;
+
+ when others =>
+ if Ignore_Unrecognized_VWY_Switches then
+ Write_Line ("unrecognized switch -gnatw." & C & " ignored");
+ else
+ return False;
+ end if;
+ end case;
+
+ return True;
+ end Set_Dot_Warning_Switch;
+
+ ----------------------------
+ -- Set_GNAT_Mode_Warnings --
+ ----------------------------
+
+ procedure Set_GNAT_Mode_Warnings is
+ begin
+ Address_Clause_Overlay_Warnings := True;
+ Check_Unreferenced := True;
+ Check_Unreferenced_Formals := True;
+ Check_Withs := True;
+ Constant_Condition_Warnings := True;
+ Elab_Warnings := False;
+ 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;
+ 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;
+
+ ------------------------
+ -- Set_Warning_Switch --
+ ------------------------
+
+ function Set_Warning_Switch (C : Character) return Boolean is
+ 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;
+
+ 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;
+
+ No_Warn_On_Non_Local_Exception := True;
+
+ when 'b' =>
+ Warn_On_Bad_Fixed_Value := True;
+
+ when 'B' =>
+ Warn_On_Bad_Fixed_Value := False;
+
+ when 'c' =>
+ Constant_Condition_Warnings := True;
+
+ when 'C' =>
+ Constant_Condition_Warnings := False;
+
+ when 'd' =>
+ Warn_On_Dereference := True;
+
+ when 'D' =>
+ Warn_On_Dereference := False;
+
+ when 'e' =>
+ Warning_Mode := Treat_As_Error;
+
+ when 'f' =>
+ Check_Unreferenced_Formals := True;
+
+ when 'F' =>
+ Check_Unreferenced_Formals := False;
+
+ when 'g' =>
+ Warn_On_Unrecognized_Pragma := True;
+
+ when 'G' =>
+ Warn_On_Unrecognized_Pragma := False;
+
+ when 'h' =>
+ Warn_On_Hiding := True;
+
+ when 'H' =>
+ Warn_On_Hiding := False;
+
+ when 'i' =>
+ Implementation_Unit_Warnings := True;
+
+ when 'I' =>
+ Implementation_Unit_Warnings := False;
+
+ when 'j' =>
+ Warn_On_Obsolescent_Feature := True;
+
+ when 'J' =>
+ Warn_On_Obsolescent_Feature := False;
+
+ when 'k' =>
+ Warn_On_Constant := True;
+
+ when 'K' =>
+ Warn_On_Constant := False;
+
+ when 'l' =>
+ Elab_Warnings := True;
+
+ when 'L' =>
+ Elab_Warnings := False;
+
+ when 'm' =>
+ Warn_On_Modified_Unread := True;
+
+ when 'M' =>
+ Warn_On_Modified_Unread := False;
+
+ when 'n' =>
+ Warning_Mode := Normal;
+
+ when 'o' =>
+ Address_Clause_Overlay_Warnings := True;
+
+ when 'O' =>
+ Address_Clause_Overlay_Warnings := False;
+
+ when 'p' =>
+ Ineffective_Inline_Warnings := True;
+
+ when 'P' =>
+ Ineffective_Inline_Warnings := False;
+
+ when 'q' =>
+ Warn_On_Questionable_Missing_Parens := True;
+
+ when 'Q' =>
+ Warn_On_Questionable_Missing_Parens := False;
+
+ when 'r' =>
+ Warn_On_Redundant_Constructs := True;
+
+ when 'R' =>
+ Warn_On_Redundant_Constructs := False;
+
+ when 's' =>
+ Warning_Mode := Suppress;
+
+ when 't' =>
+ Warn_On_Deleted_Code := True;
+
+ when 'T' =>
+ Warn_On_Deleted_Code := False;
+
+ when 'u' =>
+ Check_Unreferenced := True;
+ Check_Withs := True;
+ Check_Unreferenced_Formals := True;
+
+ when 'U' =>
+ Check_Unreferenced := False;
+ Check_Withs := False;
+ Check_Unreferenced_Formals := False;
+
+ when 'v' =>
+ Warn_On_No_Value_Assigned := True;
+
+ when 'V' =>
+ Warn_On_No_Value_Assigned := False;
+
+ when 'w' =>
+ Warn_On_Assumed_Low_Bound := True;
+
+ when 'W' =>
+ Warn_On_Assumed_Low_Bound := False;
+
+ when 'x' =>
+ Warn_On_Export_Import := True;
+
+ when 'X' =>
+ Warn_On_Export_Import := False;
+
+ when 'y' =>
+ Warn_On_Ada_2005_Compatibility := True;
+ Warn_On_Ada_2012_Compatibility := True;
+
+ when 'Y' =>
+ Warn_On_Ada_2005_Compatibility := False;
+ Warn_On_Ada_2012_Compatibility := False;
+
+ when 'z' =>
+ Warn_On_Unchecked_Conversion := True;
+
+ when 'Z' =>
+ Warn_On_Unchecked_Conversion := False;
+
+ when others =>
+ if Ignore_Unrecognized_VWY_Switches then
+ Write_Line ("unrecognized switch -gnatw" & C & " ignored");
+ else
+ return False;
+ end if;
+ return False;
+ end case;
+
+ return True;
+ end Set_Warning_Switch;
+
+end Warnsw;