summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/ChangeLog12
-rw-r--r--gcc/ada/make.adb10
-rw-r--r--gcc/ada/osint.adb8
-rw-r--r--gcc/ada/sem_ch3.adb5
-rw-r--r--gcc/ada/sem_disp.adb2
-rw-r--r--gcc/ada/sem_eval.adb11
6 files changed, 35 insertions, 13 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 81521cf9374..b6f14bcda95 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,17 @@
2010-06-22 Robert Dewar <dewar@adacore.com>
+ * sem_ch3.adb, sem_disp.adb: Minor code fixes.
+ * sem_eval.adb: Minor reformatting.
+
+2010-06-22 Vincent Celier <celier@adacore.com>
+
+ * make.adb (Scan_Make_Arg): When invoked with -nostdlib, pass -nostdlib
+ to gnatlink, except on Open VMS.
+ * osint.adb (Add_Default_Search_Dirs): Do not suppress the default
+ object directories if -nostdlib is used.
+
+2010-06-22 Robert Dewar <dewar@adacore.com>
+
* sem_util.adb (Is_Delegate): Put in proper alpha order.
* sem_eval.adb: Minor reformatting.
diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb
index 13688211b93..eb18485c77b 100644
--- a/gcc/ada/make.adb
+++ b/gcc/ada/make.adb
@@ -8213,14 +8213,18 @@ package body Make is
elsif Argv (2 .. Argv'Last) = "nostdlib" then
- -- Don't pass -nostdlib to gnatlink, it will disable
- -- linking with all standard library files.
-
No_Stdlib := True;
Add_Switch (Argv, Compiler, And_Save => And_Save);
Add_Switch (Argv, Binder, And_Save => And_Save);
+ -- On Open VMS, do not pass -nostdlib to gnatlink, it will disable
+ -- linking with all standard library files.
+
+ if not OpenVMS then
+ Add_Switch (Argv, Linker, And_Save => And_Save);
+ end if;
+
elsif Argv (2 .. Argv'Last) = "nostdinc" then
-- Pass -nostdinc to the Compiler and to gnatbind
diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb
index 6265ede68d1..6d6f388b9bb 100644
--- a/gcc/ada/osint.adb
+++ b/gcc/ada/osint.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2010, 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- --
@@ -538,7 +538,11 @@ package body Osint is
end loop;
end if;
- if not Opt.No_Stdlib and not Opt.RTS_Switch then
+ -- Even when -nostdlib is used, we still want to have visibility on
+ -- the run-time object directory, as it is used by gnatbind to find
+ -- the run-time ALI files in "real" ZFP set up.
+
+ if not Opt.RTS_Switch then
Search_Path :=
Read_Default_Search_Dirs
(String_Access (Update_Path (Search_Dir_Prefix)),
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index f98b3b1944c..e2382bd1825 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -6941,9 +6941,8 @@ package body Sem_Ch3 is
-- Ada 2005 (AI-251)
- if Ada_Version = Ada_05
- and then Is_Tagged
- then
+ if Ada_Version >= Ada_05 and then Is_Tagged then
+
-- "The declaration of a specific descendant of an interface type
-- freezes the interface type" (RM 13.14).
diff --git a/gcc/ada/sem_disp.adb b/gcc/ada/sem_disp.adb
index 3f09a3ecf76..6ffdb851635 100644
--- a/gcc/ada/sem_disp.adb
+++ b/gcc/ada/sem_disp.adb
@@ -679,7 +679,7 @@ package body Sem_Disp is
-- Ada 2005 (AI-345)
- if Ada_Version = Ada_05
+ if Ada_Version >= Ada_05
and then Present (Tagged_Type)
and then Is_Concurrent_Type (Tagged_Type)
then
diff --git a/gcc/ada/sem_eval.adb b/gcc/ada/sem_eval.adb
index 6b2602ef461..d2aeae9d13e 100644
--- a/gcc/ada/sem_eval.adb
+++ b/gcc/ada/sem_eval.adb
@@ -3827,10 +3827,13 @@ package body Sem_Eval is
then
return Empty;
- -- There are two cases where the context does not imply the type of the
- -- operands: either the universal expression appears in a type
- -- conversion, or we are in the case of a predefined relational
- -- operator, where the context type is always Boolean.
+ -- There are several cases where the context does not imply the type of
+ -- the operands:
+ -- - the universal expression appears in a type conversion;
+ -- - the expression is a relational operator applied to universal
+ -- operands;
+ -- - the expression is a membership test with a universal operand
+ -- and a range with universal bounds.
elsif Nkind (Parent (N)) = N_Type_Conversion
or else Is_Relational