diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-03 12:50:14 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-03 12:50:14 +0200 |
commit | 0187b60e160e72673f1116a215ca257e11ba3903 (patch) | |
tree | f59ec3e7f6d6ce26c1e709b66654bfafc93b35d5 /gcc/ada/sem_ch6.adb | |
parent | e0b23d9fd37bfef08ad71836438ba88446ecb5b7 (diff) | |
download | gcc-0187b60e160e72673f1116a215ca257e11ba3903.zip gcc-0187b60e160e72673f1116a215ca257e11ba3903.tar.gz gcc-0187b60e160e72673f1116a215ca257e11ba3903.tar.bz2 |
[multiple changes]
2011-08-03 Gary Dismukes <dismukes@adacore.com>
* sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
conforming subprogram renamings that appear to be completions if they
are not fully conformant.
Such renamings are homographs but not completions.
* sem_type.adb (Disambiguate): Handle disambiguation of overloaded
names in a subprogram renaming that appears in an instance.
2011-08-03 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
not immutably limited, build actual subtype from expression to provide
proper bounds to caller.
2011-08-03 Gary Dismukes <dismukes@adacore.com>
* sem_ch8.adb: Minor comment correction.
2011-08-03 Thomas Quinot <quinot@adacore.com>
* exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
returning a limited array, use an extended return statement.
2011-08-03 Vincent Celier <celier@adacore.com>
* make.adb (Initialize): If --subdirs= is used, but no project file is
specified, attempt to create the specify subdir if it does not already
exist and use it as the object directory as if -D had been specified.
2011-08-03 Arnaud Charlet <charlet@adacore.com>
* s-tpopsp-vms.adb: New file.
* s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
* gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
From-SVN: r177266
Diffstat (limited to 'gcc/ada/sem_ch6.adb')
-rw-r--r-- | gcc/ada/sem_ch6.adb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index ca7831e..6c69643 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -6332,7 +6332,13 @@ package body Sem_Ch6 is if In_Instance then Set_Convention (Designator, Convention (E)); - if Nkind (N) = N_Subprogram_Body + -- Skip past subprogram bodies and subprogram renamings that + -- may appear to have a matching spec, but that aren't fully + -- conformant with it. That can occur in cases where an + -- actual type causes unrelated homographs in the instance. + + if Nkind_In (N, N_Subprogram_Body, + N_Subprogram_Renaming_Declaration) and then Present (Homonym (E)) and then not Fully_Conformant (Designator, E) then |