diff options
author | Ben Cheng <bccheng@google.com> | 2013-03-28 11:14:20 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2013-03-28 12:40:33 -0700 |
commit | af0c51ac87ab2a87caa03fa108f0d164987a2764 (patch) | |
tree | 4b8b470f7c5b69642fdab8d0aa1fbc148d02196b /gcc-4.8/gcc/ada/warnsw.adb | |
parent | d87cae247d39ebf4f5a6bf25c932a14d2fdb9384 (diff) | |
download | toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.tar.gz toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.tar.bz2 toolchain_gcc-af0c51ac87ab2a87caa03fa108f0d164987a2764.zip |
[GCC 4.8] Initial check-in of GCC 4.8.0
Change-Id: I0719d8a6d0f69b367a6ab6f10eb75622dbf12771
Diffstat (limited to 'gcc-4.8/gcc/ada/warnsw.adb')
-rw-r--r-- | gcc-4.8/gcc/ada/warnsw.adb | 505 |
1 files changed, 505 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/ada/warnsw.adb b/gcc-4.8/gcc/ada/warnsw.adb new file mode 100644 index 000000000..c194b3182 --- /dev/null +++ b/gcc-4.8/gcc/ada/warnsw.adb @@ -0,0 +1,505 @@ +------------------------------------------------------------------------------ +-- -- +-- 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 Targparm; use Targparm; +package body Warnsw is + + ---------------------------- + -- 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' => + if OpenVMS_On_Target then + return False; + end if; + + Warning_Doc_Switch := True; + + when 'D' => + if OpenVMS_On_Target then + return False; + end if; + + 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_Inherited_Aspects := True; + + if not OpenVMS_On_Target then + Warning_Doc_Switch := True; + end if; + + 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 others => + return False; + 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_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_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 => + return False; + end case; + + return True; + end Set_Warning_Switch; + +end Warnsw; |