diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-07-20 14:55:43 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-07-20 14:55:43 +0200 |
commit | ae65d635df87446453628c005cacf2ed3850b9c6 (patch) | |
tree | fa9429c3abb0b2200bdc7151416d825424d673a9 /gcc/ada/exp_tss.adb | |
parent | 5132708f8a29709b74d5eedb36c3414cdf44fa96 (diff) | |
download | gcc-ae65d635df87446453628c005cacf2ed3850b9c6.zip gcc-ae65d635df87446453628c005cacf2ed3850b9c6.tar.gz gcc-ae65d635df87446453628c005cacf2ed3850b9c6.tar.bz2 |
[multiple changes]
2009-07-20 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb: Minor reformatting
* einfo.ads: Minor reformatting
Component_Bit_Offset is no longer considered obsolescent
2009-07-20 Nicolas Roche <roche@adacore.com>
* a-calend.adb: Redefine time_t as signed integer with same size as
Address type.
* s-os_lib.ads: Redefine OS_Time as signed integer with same size as
Address type
* adaint.h: On Windows 64bits declare OS_Time as long long instead of
long
2009-07-20 Javier Miranda <miranda@adacore.com>
* exp_tss.adb (Init_Proc): Add missing support for non-default C++
constructors that have anonymous access type formals.
* sem_res.adb (Resolve_Actuals): Disable checks associated with Ada
class-wide arguments in case of imported C++ subprograms.
* exp_ch3.adb (Build_Initialization_Call): Add assertion.
2009-07-20 Sergey Rybin <rybin@adacore.com>
* vms_data.ads: Update qualifiers.
From-SVN: r149810
Diffstat (limited to 'gcc/ada/exp_tss.adb')
-rw-r--r-- | gcc/ada/exp_tss.adb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ada/exp_tss.adb b/gcc/ada/exp_tss.adb index b1a2851..8d27395 100644 --- a/gcc/ada/exp_tss.adb +++ b/gcc/ada/exp_tss.adb @@ -243,7 +243,19 @@ package body Exp_Tss is while Present (E1) and then Present (E2) loop if Chars (E1) /= Chars (E2) or else Ekind (E1) /= Ekind (E2) - or else Etype (E1) /= Etype (E2) + then + exit; + + elsif Ekind (Etype (E1)) /= E_Anonymous_Access_Type + and then Ekind (Etype (E2)) /= E_Anonymous_Access_Type + and then Etype (E1) /= Etype (E2) + then + exit; + + elsif Ekind (Etype (E1)) = E_Anonymous_Access_Type + and then Ekind (Etype (E2)) = E_Anonymous_Access_Type + and then Directly_Designated_Type (Etype (E1)) + /= Directly_Designated_Type (Etype (E2)) then exit; end if; |