diff options
-rw-r--r-- | gcc/ada/sem_ch8.adb | 3 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/renaming17.adb | 17 |
2 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index d4ab44f..0a9ef41 100644 --- a/gcc/ada/sem_ch8.adb +++ b/gcc/ada/sem_ch8.adb @@ -9314,11 +9314,12 @@ package body Sem_Ch8 is -- If the new type is a renaming of the old one, as is the case -- for actuals in instances, retain its name, to simplify later - -- disambiguation. + -- disambiguation. Beware of Natural and Positive, see Cstand. if Nkind (Parent (New_T)) = N_Subtype_Declaration and then Is_Entity_Name (Subtype_Indication (Parent (New_T))) and then Entity (Subtype_Indication (Parent (New_T))) = Old_T + and then Scope (New_T) /= Standard_Standard then null; else diff --git a/gcc/testsuite/gnat.dg/renaming17.adb b/gcc/testsuite/gnat.dg/renaming17.adb new file mode 100644 index 0000000..d826433 --- /dev/null +++ b/gcc/testsuite/gnat.dg/renaming17.adb @@ -0,0 +1,17 @@ +-- { dg-do run } + +procedure Renaming17 is + + function Incr (V : Integer; I : Integer := 1) return Integer is + (V + I); + + function Incr_Ren (V : Integer; I : Positive := 1) return Positive + renames Incr; + + I : Integer; + +begin + I := Incr_Ren (-3); + I := Incr_Ren (-3, 2); + I := Incr_Ren (-3, 0); +end; |