https://gcc.gnu.org/g:30ba62d91ff96b0f86cc1a8544dd1ed30196ca40
commit r15-2671-g30ba62d91ff96b0f86cc1a8544dd1ed30196ca40 Author: Steve Baird <ba...@adacore.com> Date: Tue Jul 9 16:54:59 2024 -0700 ada: Compiler accepts illegal assignment to reference type target. An assignment statement whose LHS is of a reference type is never legal. If no other legality rule is violated, then it is ambiguous. In some cases this ambiguity was not correctly detected. gcc/ada/ * sem_ch5.adb (Analyze_Assignment): Delete code that was incorrectly implementing a preference rule. Diff: --- gcc/ada/sem_ch5.adb | 8 -------- 1 file changed, 8 deletions(-) diff --git a/gcc/ada/sem_ch5.adb b/gcc/ada/sem_ch5.adb index 4db3a1a26ee3..d44a12d1dd14 100644 --- a/gcc/ada/sem_ch5.adb +++ b/gcc/ada/sem_ch5.adb @@ -437,14 +437,6 @@ package body Sem_Ch5 is then null; - -- This may be a call to a parameterless function through an - -- implicit dereference, so discard interpretation as well. - - elsif Is_Entity_Name (Lhs) - and then Has_Implicit_Dereference (It.Typ) - then - null; - elsif Has_Compatible_Type (Rhs, It.Typ) then if T1 = Any_Type then T1 := It.Typ;