X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fada%2Fopt.ads;h=a9c2d9f75706620b46f0742229109d5c2fada13c;hb=8f1fc867e5a31662664758fc405b82017e74cfbc;hp=66af7cd425d430b90385645a7266a4dda9b3ad06;hpb=3f8cf2d21799e648d13a8b7693b3ecea72726fcf;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ada/opt.ads b/gcc/ada/opt.ads index 66af7cd425d..a9c2d9f7570 100644 --- a/gcc/ada/opt.ads +++ b/gcc/ada/opt.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2011, 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- -- @@ -49,6 +49,58 @@ pragma Warnings (On); package Opt is + ---------------------- + -- Checksum Control -- + ---------------------- + + -- Checksums are computed for sources to check for sources being the same + -- from a compilation point of view (e.g. spelling of identifiers and + -- white space layout do not count in this computation). + + -- The way the checksum is computed has evolved across the various versions + -- of GNAT. When gprbuild is called with -m, the checksums must be computed + -- the same way in gprbuild as it was in the GNAT version of the compiler. + -- The different ways are + + -- Version 6.4 and later: + + -- The Accumulate_Token_Checksum procedure is called after each numeric + -- literal and each identifier/keyword. For keywords, Tok_Identifier is + -- used in the call to Accumulate_Token_Checksum. + + -- Versions 5.04 to 6.3: + + -- For keywords, the token value were used in the call to procedure + -- Accumulate_Token_Checksum. Type Token_Type did not include Tok_Some. + + -- Versions 5.03: + + -- For keywords, the token value were used in the call to + -- Accumulate_Token_Checksum. Type Token_Type did not include + -- Tok_Interface, Tok_Overriding, Tok_Synchronized and Tok_Some. + + -- Versions 5.02 and before: + + -- No calls to procedure Accumulate_Token_Checksum (the checksum + -- mechanism was introduced in version 5.03). + + -- To signal to the scanner whether Accumulate_Token_Checksum needs to be + -- called and what versions to call, the following Boolean flags are used: + + Checksum_Accumulate_Token_Checksum : Boolean := True; + -- GPRBUILD + -- Set to False by gprbuild when the version of GNAT is 5.02 or before. If + -- this switch is False, then we do not call Accumulate_Token_Checksum, so + -- the setting of the following two flags is irrelevant. + + Checksum_GNAT_6_3 : Boolean := False; + -- GPRBUILD + -- Set to True by gprbuild when the version of GNAT is 6.3 or before. + + Checksum_GNAT_5_03 : Boolean := False; + -- GPRBUILD + -- Set to True by gprbuild when the version of GNAT is 5.03 or before. + ---------------------------------------------- -- Settings of Modes for Current Processing -- ---------------------------------------------- @@ -60,21 +112,21 @@ package Opt is -- case of some binder variables, Gnatbind.Scan_Bind_Arg may modify -- the default values. - Ada_Bind_File : Boolean := True; - -- GNATBIND, GNATLINK - -- Set True if binder file to be generated in Ada rather than C - - type Ada_Version_Type is (Ada_83, Ada_95, Ada_05); - pragma Warnings (Off, Ada_Version_Type); + type Ada_Version_Type is (Ada_83, Ada_95, Ada_2005, Ada_2012); + pragma Ordered (Ada_Version_Type); -- Versions of Ada for Ada_Version below. Note that these are ordered, -- so that tests like Ada_Version >= Ada_95 are legitimate and useful. - -- The Warnings_Off pragma stops warnings for Ada_Version >= Ada_05, - -- which we want to allow, so that things work OK when Ada_15 is added! - -- This warning is now removed, so this pragma can be removed some time??? + -- Think twice before using "="; Ada_Version >= Ada_2012 is more likely + -- what you want, because it will apply to future versions of the language. - Ada_Version_Default : Ada_Version_Type := Ada_05; + Ada_Version_Default : constant Ada_Version_Type := Ada_2005; + pragma Warnings (Off, Ada_Version_Default); -- GNAT - -- Default Ada version if no switch given + -- Default Ada version if no switch given. The Warnings off is to kill + -- constant condition warnings. + -- + -- WARNING: some scripts rely on the format of this line of code. Any + -- change must be coordinated with the scripts requirements. Ada_Version : Ada_Version_Type := Ada_Version_Default; -- GNAT @@ -91,7 +143,7 @@ package Opt is -- the rare cases (notably for pragmas Preelaborate_05 and Pure_05) -- where in the run-time we want the explicit version set. - Ada_Version_Runtime : Ada_Version_Type := Ada_05; + Ada_Version_Runtime : Ada_Version_Type := Ada_2012; -- GNAT -- Ada version used to compile the runtime. Used to set Ada_Version (but -- not Ada_Version_Explicit) when compiling predefined or internal units. @@ -272,7 +324,7 @@ package Opt is -- of withing a package and using none of the entities in the package. CodePeer_Mode : Boolean := False; - -- GNAT + -- GNAT, GNATBIND -- Enable full CodePeer mode (SCIL generation, disable switches that -- interact badly with it, etc...). @@ -322,6 +374,10 @@ package Opt is -- GNAT -- Enable debug statements from pragma Debug + Debug_Pragmas_Disabled : Boolean := False; + -- GNAT + -- Debug pragmas completely disabled (no semantic checking) + subtype Debug_Level_Value is Nat range 0 .. 3; Debugger_Level : Debug_Level_Value := 0; -- GNATBIND @@ -355,6 +411,16 @@ package Opt is -- default was set by the binder, and that the default should be the -- initial value of System.Secondary_Stack.Default_Secondary_Stack_Size. + Default_Pool : Node_Id := Empty; + -- GNAT + -- Used to record the storage pool name (or null literal) that is the + -- argument of an applicable pragma Default_Storage_Pool. + -- Empty: No pragma Default_Storage_Pool applies. + -- N_Null node: "pragma Default_Storage_Pool (null);" applies. + -- otherwise: "pragma Default_Storage_Pool (X);" applies, and + -- this points to the name X. + -- Push_Scope and Pop_Scope in Sem_Ch8 save and restore this value. + Detect_Blocking : Boolean := False; -- GNAT -- Set True to force the run time to raise Program_Error if calls to @@ -440,10 +506,16 @@ package Opt is -- It is used to set Warn_On_Exception_Propagation True if the restriction -- No_Exception_Propagation is set. + Exception_Extra_Info : Boolean := False; + -- GNAT + -- True when switch -gnateE is used. When True, generate extra information + -- associated with exception messages (in particular range and index + -- checks). + Exception_Locations_Suppressed : Boolean := False; -- GNAT - -- This flag is set True if a Suppress_Exception_Locations configuration - -- pragma is currently active. + -- Set to True if a Suppress_Exception_Locations configuration pragma is + -- currently active. type Exception_Mechanism_Type is -- Determines the handling of exceptions. See Exp_Ch11 for details @@ -534,6 +606,10 @@ package Opt is -- Force generation of ALI file even if errors are encountered. -- Also forces generation of tree file if -gnatt is also set. + Disable_ALI_File : Boolean := False; + -- GNAT + -- Disable generation of ALI file + Force_Checking_Of_Elaboration_Flags : Boolean := False; -- GNATBIND -- True if binding with forced checking of the elaboration flags @@ -585,6 +661,11 @@ package Opt is -- GNAT -- True if compiling in GNAT system mode (-gnatg switch) + Heap_Size : Nat := 0; + -- GNATBIND + -- Heap size for memory allocations. Valid values are 32 and 64. Only + -- available on VMS. + HLO_Active : Boolean := False; -- GNAT -- True if High Level Optimizer is activated (-gnatH switch) @@ -720,6 +801,11 @@ package Opt is -- Set to True to skip compile and bind steps (except when Bind_Only is -- set to True). + List_Inherited_Aspects : Boolean := True; + -- GNAT + -- List inherited invariants, preconditions, and postconditions from + -- Invariant'Class, Pre'Class, and Post'Class aspects. + List_Restrictions : Boolean := False; -- GNATBIND -- Set to True to list restrictions pragmas that could apply to partition @@ -903,6 +989,12 @@ package Opt is -- GNATMAKE -- Set to True when an object directory is specified with option -D + One_Compilation_Per_Obj_Dir : Boolean := False; + -- GNATMAKE, GPRBUILD + -- Set to True with switch --single-compile-per-obj-dir. When True, there + -- cannot be simultaneous compilations with the object files in the same + -- object directory, if project files are used. + type Operating_Mode_Type is (Check_Syntax, Check_Semantics, Generate_Code); Operating_Mode : Operating_Mode_Type := Generate_Code; -- GNAT @@ -989,6 +1081,15 @@ package Opt is -- GNAT -- Set by switch -gnatep=. The file name of the preprocessing data file. + Preprocessing_Symbol_Defs : String_List_Access := new String_List (1 .. 4); + -- An extensible array to temporarily stores symbol definitions specified + -- on the command line with -gnateD switches. + -- What is this magic constant 4 ??? + -- What is extensible about this fixed length array ??? + + Preprocessing_Symbol_Last : Natural := 0; + -- Index of last symbol definition in array Symbol_Definitions + Print_Generated_Code : Boolean := False; -- GNAT -- Set to True to enable output of generated code in source form. This @@ -1075,7 +1176,12 @@ package Opt is -- GNAT -- Set True if a pragma Short_Circuit_And_Or applies to the current unit. + Short_Descriptors : Boolean := False; + -- GNAT + -- Set True if a pragma Short_Descriptors applies to the current unit. + Sprint_Line_Limit : Nat := 72; + -- GNAT -- Limit values for chopping long lines in Sprint output, can be reset -- by use of NNN parameter with -gnatG or -gnatD switches. @@ -1091,7 +1197,7 @@ package Opt is Style_Check : Boolean := False; -- GNAT -- Set True to perform style checks. Activates checks carried out in - -- package Style (see body of this package for details of checks) This + -- package Style (see body of this package for details of checks). This -- flag is set True by either the -gnatg or -gnaty switches. Suppress_All_Inlining : Boolean := False; @@ -1189,6 +1295,11 @@ package Opt is -- Tolerate time stamp and other consistency errors. If this flag is set to -- True (-t), then inconsistencies result in warnings rather than errors. + Treat_Categorization_Errors_As_Warnings : Boolean := False; + -- Normally categorization errors are true illegalities. If this switch + -- is set, then such errors result in warning messages rather than error + -- messages. Set True by -gnateP (P for Pure/Preelaborate). + Treat_Restrictions_As_Warnings : Boolean := False; -- GNAT -- Set True to treat pragma Restrictions as Restriction_Warnings. Set by @@ -1292,6 +1403,7 @@ package Opt is -- information sent to standard output, also header, copyright and summary) type Verbosity_Level_Type is (None, Low, Medium, High); + pragma Ordered (Verbosity_Level_Type); Verbosity_Level : Verbosity_Level_Type := High; -- GNATMAKE, GPRMAKE -- Modified by gnatmake or gprmake switches -v, -vl, -vm, -vh. Indicates @@ -1312,11 +1424,18 @@ package Opt is -- including warnings on Ada 2005 obsolescent features used in Ada 2005 -- mode. Set False by -gnatwY. - Warn_On_Parameter_Order : Boolean := False; + Warn_On_Ada_2012_Compatibility : Boolean := True; -- GNAT - -- Set to True to generate warnings for cases where the argument list for - -- a call is a sequence of identifiers that match the formal identifiers, - -- but are in the wrong order. + -- Set to True to generate all warnings on Ada 2012 compatibility issues, + -- including warnings on Ada 2012 obsolescent features used in Ada 2012 + -- mode. Set False by -gnatwY. + + Warn_On_All_Unread_Out_Parameters : Boolean := False; + -- GNAT + -- Set to True to generate warnings in all cases where a variable is + -- modified by being passed as to an OUT formal, but the resulting value is + -- never read. The default is that this warning is suppressed, except in + -- the case of Warn_On_Assertion_Failure : Boolean := True; -- GNAT @@ -1373,13 +1492,6 @@ package Opt is -- but only if there is only one out parameter for the procedure involved. -- The default is that this warning is suppressed. - Warn_On_All_Unread_Out_Parameters : Boolean := False; - -- GNAT - -- Set to True to generate warnings in all cases where a variable is - -- modified by being passed as to an OUT formal, but the resulting value is - -- never read. The default is that this warning is suppressed, except in - -- the case of - Warn_On_No_Value_Assigned : Boolean := True; -- GNAT -- Set to True to generate warnings if no value is ever assigned to a @@ -1401,6 +1513,11 @@ package Opt is -- use this to avoid turning it on by default when No_Exception_Propagation -- restriction is set and an exception handler is present. + Warn_On_Object_Renames_Function : Boolean := False; + -- GNAT + -- Set to True to generate warnings when a function result is renamed as + -- an object. The default is that this warning is disabled. + Warn_On_Obsolescent_Feature : Boolean := False; -- GNAT -- Set to True to generate warnings on use of any feature in Annex or if a @@ -1416,16 +1533,17 @@ package Opt is -- Set to True to generate warnings for cases where parentheses are missing -- and the usage is questionable, because the intent is unclear. + Warn_On_Parameter_Order : Boolean := False; + -- GNAT + -- Set to True to generate warnings for cases where the argument list for + -- a call is a sequence of identifiers that match the formal identifiers, + -- but are in the wrong order. + Warn_On_Redundant_Constructs : Boolean := False; -- GNAT -- Set to True to generate warnings for redundant constructs (e.g. useless -- assignments/conversions). The default is that this warning is disabled. - Warn_On_Object_Renames_Function : Boolean := False; - -- GNAT - -- Set to True to generate warnings when a function result is renamed as - -- an object. The default is that this warning is disabled. - Warn_On_Reverse_Bit_Order : Boolean := True; -- GNAT -- Set to True to generate warning (informational) messages for component @@ -1443,6 +1561,13 @@ package Opt is -- non-portable semantics (e.g. because sizes of types differ). The default -- is that this warning is enabled. + Warn_On_Unordered_Enumeration_Type : Boolean := False; + -- GNAT + -- Set to True to generate warnings for inappropriate uses (comparisons + -- and explicit ranges) on unordered enumeration types (which includes + -- all enumeration types for which pragma Ordered is not given). The + -- default is that this warning is disabled. + Warn_On_Unrecognized_Pragma : Boolean := True; -- GNAT -- Set to True to generate warnings for unrecognized pragmas. The default @@ -1540,12 +1665,22 @@ package Opt is -- terminated by Empty. The order is most recently processed first. This -- list includes only those pragmas in configuration pragma files. + Debug_Pragmas_Disabled_Config : Boolean; + -- GNAT + -- This is the value of the configuration switch for debug pragmas disabled + -- mode, as possibly set by use of the configuration pragma Debug_Policy. + Debug_Pragmas_Enabled_Config : Boolean; -- GNAT -- This is the value of the configuration switch for debug pragmas enabled -- mode, as possibly set by the command line switch -gnata and possibly -- modified by the use of the configuration pragma Debug_Policy. + Default_Pool_Config : Node_Id := Empty; + -- GNAT + -- Same as Default_Pool above, except this is only for Default_Storage_Pool + -- pragmas that are configuration pragmas. + Dynamic_Elaboration_Checks_Config : Boolean := False; -- GNAT -- Set True for dynamic elaboration checking mode, as set by the -gnatE @@ -1592,11 +1727,6 @@ package Opt is -- used to set the initial value of Fast_Math at the start of each new -- compilation unit. - Init_Or_Norm_Scalars_Config : Boolean; - -- GNAT - -- This is the value of the configuration switch that is set by one - -- of the pragmas Initialize_Scalars or Normalize_Scalars. - Initialize_Scalars_Config : Boolean; -- GNAT -- This is the value of the configuration switch that is set by the @@ -1629,6 +1759,14 @@ package Opt is -- flag is used to set the initial value for Polling_Required at the start -- of analyzing each unit. + Short_Descriptors_Config : Boolean; + -- GNAT + -- This is the value of the configuration switch that controls the use of + -- Short_Descriptors for setting descriptor default sizes. It can be set + -- True by the use of the pragma Short_Descriptors in the gnat.adc file. + -- This flag is used to set the initial value for Short_Descriptors at the + -- start of analyzing each unit. + Use_VADS_Size_Config : Boolean; -- GNAT -- This is the value of the configuration switch that controls the use of @@ -1730,6 +1868,17 @@ package Opt is -- Used to store the ASIS version number read from a tree file to check if -- it is the same as stored in the ASIS version number in Tree_IO. + ---------------------------------- + -- Mode for Formal Verification -- + ---------------------------------- + + -- This mode is currently defined through a debug flag + + ALFA_Mode : Boolean := False; + -- Specific compiling mode targeting formal verification through the + -- generation of Why code for those parts of the input code that belong to + -- the ALFA subset of Ada. Set by debuf flag -gnatd.F. + private -- The following type is used to save and restore settings of switches in @@ -1745,19 +1894,22 @@ private Assertions_Enabled : Boolean; Assume_No_Invalid_Values : Boolean; Check_Policy_List : Node_Id; + Debug_Pragmas_Disabled : Boolean; Debug_Pragmas_Enabled : Boolean; + Default_Pool : Node_Id; Dynamic_Elaboration_Checks : Boolean; Exception_Locations_Suppressed : Boolean; Extensions_Allowed : Boolean; External_Name_Exp_Casing : External_Casing_Type; External_Name_Imp_Casing : External_Casing_Type; Fast_Math : Boolean; - Init_Or_Norm_Scalars : Boolean; Initialize_Scalars : Boolean; + Normalize_Scalars : Boolean; Optimize_Alignment : Character; Optimize_Alignment_Local : Boolean; Persistent_BSS_Mode : Boolean; Polling_Required : Boolean; + Short_Descriptors : Boolean; Use_VADS_Size : Boolean; end record;