From: Arnaud Charlet Date: Tue, 22 Jun 2010 07:41:14 +0000 (+0200) Subject: [multiple changes] X-Git-Tag: upstream/12.2.0~92121 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=946db1e20e437ab14cf52a5414a46a2b772a6228;p=platform%2Fupstream%2Fgcc.git [multiple changes] 2010-06-22 Robert Dewar * sem_ch3.adb, sem_disp.adb: Minor code fixes. * sem_eval.adb: Minor reformatting. 2010-06-22 Vincent Celier * 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. From-SVN: r161141 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 81521cf..b6f14bc 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,17 @@ 2010-06-22 Robert Dewar + * sem_ch3.adb, sem_disp.adb: Minor code fixes. + * sem_eval.adb: Minor reformatting. + +2010-06-22 Vincent Celier + + * 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 + * 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 1368821..eb18485 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 6265ede..6d6f388 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 f98b3b1..e2382bd 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 3f09a3e..6ffdb85 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 6b2602e..d2aeae9 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