aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/adabkend.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2016-07-07 15:05:08 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2016-07-07 15:05:08 +0200
commit0e77949e878dd109ee7daffcda12faa1a8000d29 (patch)
tree5124c182f5e68317d94f9bf2746f501ba4f7e9e8 /gcc/ada/adabkend.adb
parent7dccd19430283ffe5aac0bf55e42f84f5edcddcb (diff)
downloadgcc-0e77949e878dd109ee7daffcda12faa1a8000d29.zip
gcc-0e77949e878dd109ee7daffcda12faa1a8000d29.tar.gz
gcc-0e77949e878dd109ee7daffcda12faa1a8000d29.tar.bz2
[multiple changes]
2016-07-07 Ed Schonberg <schonberg@adacore.com> * sem_prag.ads, sem_prag.adb (Build_Classwide_Expression): Include overridden operation as parameter, in order to map formals of the overridden and overring operation properly prior to rewriting the inherited condition. * freeze.adb (Check_Inherited_Cnonditions): Change call to Build_Class_Wide_Expression accordingly. In Spark_Mode, add call to analyze the contract of the parent operation, prior to mapping formals between operations. 2016-07-07 Arnaud Charlet <charlet@adacore.com> * adabkend.adb (Scan_Back_End_Switches): Ignore -o/-G switches as done in back_end.adb. (Scan_Compiler_Args): Remove special case for CodePeer/SPARK, no longer needed, and prevents proper handling of multi-unit sources. 2016-07-07 Thomas Quinot <quinot@adacore.com> * g-sechas.adb, g-sechas.ads (GNAT.Secure_Hashes.H): Add Hash_Stream type with Write primitive calling Update on the underlying context (and dummy Read primitive raising P_E). 2016-07-07 Thomas Quinot <quinot@adacore.com> * sem_ch13.adb: Minor reformatting. From-SVN: r238111
Diffstat (limited to 'gcc/ada/adabkend.adb')
-rw-r--r--gcc/ada/adabkend.adb38
1 files changed, 6 insertions, 32 deletions
diff --git a/gcc/ada/adabkend.adb b/gcc/ada/adabkend.adb
index e850923..7eee887 100644
--- a/gcc/ada/adabkend.adb
+++ b/gcc/ada/adabkend.adb
@@ -98,31 +98,15 @@ package body Adabkend is
-- affect code generation or falling through if it does, so the
-- switch will get stored.
- if Is_Internal_GCC_Switch (Switch_Chars) then
+ -- Skip -o, -G or internal GCC switches together with their argument.
+
+ if Switch_Chars (First .. Last) = "o"
+ or else Switch_Chars (First .. Last) = "G"
+ or else Is_Internal_GCC_Switch (Switch_Chars)
+ then
Next_Arg := Next_Arg + 1;
return; -- ignore this switch
- -- Record that an object file name has been specified. The actual
- -- file name argument is picked up and saved below by the main body
- -- of Scan_Compiler_Arguments.
-
- elsif Switch_Chars (First .. Last) = "o" then
- if First = Last then
- if Opt.Output_File_Name_Present then
-
- -- Ignore extra -o when -gnatO has already been specified
-
- Next_Arg := Next_Arg + 1;
-
- else
- Opt.Output_File_Name_Present := True;
- end if;
-
- return;
- else
- Fail ("invalid switch: " & Switch_Chars);
- end if;
-
-- Set optimization indicators appropriately. In gcc-based GNAT this
-- is picked up from imported variables set by the gcc driver, but
-- for compilers with non-gcc back ends we do it here to allow use
@@ -244,16 +228,6 @@ package body Adabkend is
then
if Is_Switch (Argv) then
Fail ("Object file name missing after -gnatO");
-
- -- In GNATprove_Mode, such an object file is never written, and
- -- the call to Set_Output_Object_File_Name may fail (e.g. when
- -- the object file name does not have the expected suffix).
- -- So we skip that call when GNATprove_Mode is set. Same for
- -- CodePeer_Mode.
-
- elsif GNATprove_Mode or CodePeer_Mode then
- Output_File_Name_Seen := True;
-
else
Set_Output_Object_File_Name (Argv);
Output_File_Name_Seen := True;