aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_tss.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-07-20 14:55:43 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-07-20 14:55:43 +0200
commitae65d635df87446453628c005cacf2ed3850b9c6 (patch)
treefa9429c3abb0b2200bdc7151416d825424d673a9 /gcc/ada/exp_tss.adb
parent5132708f8a29709b74d5eedb36c3414cdf44fa96 (diff)
downloadgcc-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.adb14
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;