diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-09 14:34:42 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-09 14:34:42 +0200 |
commit | f7d7bb5109d0b302fbbe1c925138fb0766398486 (patch) | |
tree | 4b1a85e6820d8dc4ff9dcae0248320ec913ec88b /gcc/ada | |
parent | 5e781161bab5a1f425f534c9dfa71e4f481daf71 (diff) | |
download | gcc-f7d7bb5109d0b302fbbe1c925138fb0766398486.zip gcc-f7d7bb5109d0b302fbbe1c925138fb0766398486.tar.gz gcc-f7d7bb5109d0b302fbbe1c925138fb0766398486.tar.bz2 |
[multiple changes]
2009-04-09 Robert Dewar <dewar@adacore.com>
* switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb,
switch.ads: for numeric switches, an optional equal sign is always
allowed.
2009-04-09 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Get_Unit): Do not consider Casing on platform where
the case of file names is not significant.
From-SVN: r145834
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/ada/gnat_ugn.texi | 10 | ||||
-rw-r--r-- | gcc/ada/prj-nmsc.adb | 48 | ||||
-rw-r--r-- | gcc/ada/switch-c.adb | 18 | ||||
-rw-r--r-- | gcc/ada/switch.adb | 44 | ||||
-rw-r--r-- | gcc/ada/switch.ads | 13 | ||||
-rw-r--r-- | gcc/ada/vms_data.ads | 16 |
7 files changed, 98 insertions, 62 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 9c0f4289..0d2b8a0 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2009-04-09 Robert Dewar <dewar@adacore.com> + + * switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb, + switch.ads: for numeric switches, an optional equal sign is always + allowed. + +2009-04-09 Vincent Celier <celier@adacore.com> + + * prj-nmsc.adb (Get_Unit): Do not consider Casing on platform where + the case of file names is not significant. + 2009-04-09 Vincent Celier <celier@adacore.com> * errout.adb: Remove dependency on package Style diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 7907023..9275c22 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -3949,7 +3949,7 @@ Note that @option{^-gnatg^/GNAT_INTERNAL^} implies so that all standard warnings and all standard style options are turned on. All warnings and style error messages are treated as errors. -@item -gnatGnn +@item -gnatG=nn @cindex @option{-gnatG[nn]} (@command{gcc}) List generated expanded code in source form. @@ -6796,7 +6796,7 @@ switches in the body of the @code{Debug} unit in the compiler source file @file{debug.adb}. @end ifclear -@item -gnatG[nn] +@item -gnatG[=nn] @cindex @option{-gnatG} (@command{gcc}) This switch causes the compiler to generate auxiliary output containing a pseudo-source listing of the generated expanded code. Like most Ada @@ -6814,7 +6814,7 @@ approach to improve efficiency. The optional parameter @code{nn} if present after -gnatG specifies an alternative maximum line length that overrides the normal default of 72. This value is in the range 40-999999, values less than 40 being silently -reset to 40. +reset to 40. The equal sign is optional. The format of the output is very similar to standard Ada source, and is easily understood by an Ada programmer. The following special syntactic @@ -6899,7 +6899,7 @@ representation in base 2-16 (for example, the result of compile time evaluation of the expression 1.0/27.0). @end table -@item -gnatD[nn] +@item -gnatD[=nn] @cindex @option{-gnatD} (@command{gcc}) When used in conjunction with @option{-gnatG}, this switch causes the expanded source, as described above for @@ -6930,7 +6930,7 @@ in the expanded source (as comment lines with the original line number). The optional parameter @code{nn} if present after -gnatD specifies an alternative maximum line length that overrides the normal default of 72. This value is in the range 40-999999, values less than 40 being silently -reset to 40. +reset to 40. The equal sign is optional. @item -gnatr @cindex @option{-gnatr} (@command{gcc}) diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb index 3c2d5d8..3de151f 100644 --- a/gcc/ada/prj-nmsc.adb +++ b/gcc/ada/prj-nmsc.adb @@ -6779,38 +6779,42 @@ package body Prj.Nmsc is end; end if; - -- Check if the casing is right + -- Check if the file casing is right declare Src : String := File (First .. Last); Src_Last : Positive := Last; begin - case Naming.Casing is - when All_Lower_Case => - Fixed.Translate - (Source => Src, - Mapping => Lower_Case_Map); - - when All_Upper_Case => - Fixed.Translate - (Source => Src, - Mapping => Upper_Case_Map); - - when Mixed_Case | Unknown => - null; - end case; + -- If casing is significant, deal with upper/lower case translate + + if File_Names_Case_Sensitive then + case Naming.Casing is + when All_Lower_Case => + Fixed.Translate + (Source => Src, + Mapping => Lower_Case_Map); + + when All_Upper_Case => + Fixed.Translate + (Source => Src, + Mapping => Upper_Case_Map); + + when Mixed_Case | Unknown => + null; + end case; - if Src /= File (First .. Last) then - if Current_Verbosity = High then - Write_Line (" Not a valid file name (casing)."); - end if; + if Src /= File (First .. Last) then + if Current_Verbosity = High then + Write_Line (" Not a valid file name (casing)."); + end if; - Unit_Name := No_Name; - return; + Unit_Name := No_Name; + return; + end if; end if; - -- We put the name in lower case + -- Put the name in lower case Fixed.Translate (Source => Src, diff --git a/gcc/ada/switch-c.adb b/gcc/ada/switch-c.adb index 23b9551..8178afc 100644 --- a/gcc/ada/switch-c.adb +++ b/gcc/ada/switch-c.adb @@ -280,7 +280,7 @@ package body Switch.C is -- Scan optional integer line limit value - if Ptr <= Max and then Switch_Chars (Ptr) in '0' .. '9' then + if Nat_Present (Switch_Chars, Max, Ptr) then Scan_Nat (Switch_Chars, Max, Ptr, Sprint_Line_Limit, 'D'); Sprint_Line_Limit := Nat'Max (Sprint_Line_Limit, 40); end if; @@ -530,7 +530,7 @@ package body Switch.C is -- Scan optional integer line limit value - if Ptr <= Max and then Switch_Chars (Ptr) in '0' .. '9' then + if Nat_Present (Switch_Chars, Max, Ptr) then Scan_Nat (Switch_Chars, Max, Ptr, Sprint_Line_Limit, 'G'); Sprint_Line_Limit := Nat'Max (Sprint_Line_Limit, 40); end if; @@ -582,13 +582,6 @@ package body Switch.C is when 'j' => Ptr := Ptr + 1; - - -- There may be an equal sign between -gnatj and the value - - if Ptr <= Max and then Switch_Chars (Ptr) = '=' then - Ptr := Ptr + 1; - end if; - Scan_Nat (Switch_Chars, Max, Ptr, Error_Msg_Line_Length, C); -- Processing for k switch @@ -626,13 +619,6 @@ package body Switch.C is when 'm' => Ptr := Ptr + 1; - - -- There may be an equal sign between -gnatm and the value - - if Ptr <= Max and then Switch_Chars (Ptr) = '=' then - Ptr := Ptr + 1; - end if; - Scan_Nat (Switch_Chars, Max, Ptr, Maximum_Messages, C); -- Processing for n switch diff --git a/gcc/ada/switch.adb b/gcc/ada/switch.adb index e185d70..f318de7 100644 --- a/gcc/ada/switch.adb +++ b/gcc/ada/switch.adb @@ -148,6 +148,24 @@ package body Switch is and then Switch_Chars (Switch_Chars'First) = '-'; end Is_Switch; + ----------------- + -- Nat_Present -- + ----------------- + + function Nat_Present + (Switch_Chars : String; + Max : Integer; + Ptr : Integer) return Boolean + is + begin + return (Ptr <= Max + and then Switch_Chars (Ptr) in '0' .. '9') + or else + (Ptr < Max + and then Switch_Chars (Ptr) = '=' + and then Switch_Chars (Ptr + 1) in '0' .. '9'); + end Nat_Present; + -------------- -- Scan_Nat -- -------------- @@ -162,20 +180,24 @@ package body Switch is begin Result := 0; - if Ptr > Max or else Switch_Chars (Ptr) not in '0' .. '9' then + if not Nat_Present (Switch_Chars, Max, Ptr) then Osint.Fail ("missing numeric value for switch: " & Switch); + end if; - else - while Ptr <= Max and then Switch_Chars (Ptr) in '0' .. '9' loop - Result := Result * 10 + - Character'Pos (Switch_Chars (Ptr)) - Character'Pos ('0'); - Ptr := Ptr + 1; - - if Result > Switch_Max_Value then - Osint.Fail ("numeric value out of range for switch: " & Switch); - end if; - end loop; + if Switch_Chars (Ptr) = '=' then + Ptr := Ptr + 1; end if; + + while Ptr <= Max and then Switch_Chars (Ptr) in '0' .. '9' loop + Result := + Result * 10 + + Character'Pos (Switch_Chars (Ptr)) - Character'Pos ('0'); + Ptr := Ptr + 1; + + if Result > Switch_Max_Value then + Osint.Fail ("numeric value out of range for switch: " & Switch); + end if; + end loop; end Scan_Nat; -------------- diff --git a/gcc/ada/switch.ads b/gcc/ada/switch.ads index 34b14bb..9b6c7ea 100644 --- a/gcc/ada/switch.ads +++ b/gcc/ada/switch.ads @@ -81,6 +81,15 @@ private Switch_Max_Value : constant := 999_999; -- Maximum value permitted in switches that take a value + function Nat_Present + (Switch_Chars : String; + Max : Integer; + Ptr : Integer) return Boolean; + -- Returns True if an integer is at the current scan location or an equal + -- sign. This is used as a guard for calling Scan_Nat. Switch_Chars is the + -- string containing the switch, and Ptr points just past the switch + -- character. Max is the maximum alllowed value of Ptr. + procedure Scan_Nat (Switch_Chars : String; Max : Integer; @@ -91,7 +100,9 @@ private -- past the switch character, on exit it points past the last digit of the -- integer value. Max is the maximum allowed value of Ptr, so the scan is -- restricted to Switch_Chars (Ptr .. Max). It is posssible for Ptr to be - -- one greater than Max on return if the entire string is digits. + -- one greater than Max on return if the entire string is digits. Scan_Nat + -- will skip an optional equal sign if it is present. Nat_Present must be + -- True, or an error will be signalled. procedure Scan_Pos (Switch_Chars : String; diff --git a/gcc/ada/vms_data.ads b/gcc/ada/vms_data.ads index c6579f1..2909765 100644 --- a/gcc/ada/vms_data.ads +++ b/gcc/ada/vms_data.ads @@ -131,7 +131,7 @@ package VMS_Data is -- no space is inserted between the switch and the file name. -- The NUMERIC_TRANSLATION format is similar to the FILE_TRANSLATION case - -- except that the parameter is a decimal integer in the range 0 to 999. + -- except that the parameter is a decimal integer in the range 0 to 999999. -- For the OPTIONS_TRANSLATION case, GNATCmd similarly permits one or -- more options to appear (although only in some cases does the use of @@ -1484,14 +1484,15 @@ package VMS_Data is "-gnatm999999"; -- NODOC (see /ERROR_LIMIT) - S_GCC_Expand : aliased constant S := "/EXPAND_SOURCE " & + S_GCC_Expand : aliased constant S := "/EXPAND_SOURCE=#" & "-gnatG"; - -- /NOEXPAND_SOURCE (D) + -- /NOEXPAND_SOURCE[=nnn] (D) -- /EXPAND_SOURCE -- -- Produces a listing of the expanded code in Ada source form. For -- example, all tasking constructs are reduced to appropriate run-time - -- library calls. + -- library calls. The parameter is the maximum line length for the + -- listing (default is 72). S_GCC_Extend : aliased constant S := "/EXTENSIONS_ALLOWED " & "-gnatX"; @@ -3329,9 +3330,9 @@ package VMS_Data is "-gnatWn"; -- NODOC (see /WIDE_CHARACTER_ENCODING) - S_GCC_Xdebug : aliased constant S := "/XDEBUG " & + S_GCC_Xdebug : aliased constant S := "/XDEBUG=#" & "-gnatD"; - -- /NOXDEBUG (D) + -- /NOXDEBUG[=nnn] (D) -- /XDEBUG -- -- Output expanded source files for source level debugging. @@ -3341,7 +3342,8 @@ package VMS_Data is -- refer to the generated file. This allows source level debugging using -- the generated code which is sometimes useful for complex code, for -- example to find out exactly which part of a complex construction - -- raised an exception. + -- raised an exception. The parameter if present is the maximum line + -- length for the output (default 72). S_GCC_Xref : aliased constant S := "/XREF=" & "GENERATE " & |