From: Eric Botcazou <ebotca...@adacore.com> This recent regression occurs when the nominal subtype of the constant is a discriminated record type with default discriminants.
gcc/ada/ PR ada/110488 * sem_ch3.adb (Analyze_Object_Declaration): Do not build a default subtype for a deferred constant in the definite case too. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_ch3.adb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 92902a7debb..c79d323395f 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -5048,9 +5048,11 @@ package body Sem_Ch3 is Apply_Length_Check (E, T); end if; - -- When possible, build the default subtype + -- When possible, and not a deferred constant, build the default subtype - elsif Build_Default_Subtype_OK (T) then + elsif Build_Default_Subtype_OK (T) + and then (not Constant_Present (N) or else Present (E)) + then if No (E) then Act_T := Build_Default_Subtype (T, N); else -- 2.42.0