[COMMITTED] ada: Enforce Aggregate aspect legality rule

Message ID 20221201135550.458256-1-poulhies@adacore.com
State Committed
Commit 82cf82c4610dbf2a1021841fea3700a477246b79
Headers
Series [COMMITTED] ada: Enforce Aggregate aspect legality rule |

Commit Message

Marc Poulhiès Dec. 1, 2022, 1:55 p.m. UTC
  From: Steve Baird <baird@adacore.com>

Ada 2022 requires that an Aggregate aspect specification shall specify a
a name for at least one of Add_Named, Add_Unnamed, or Assign_Indexed.
Enforce this rule.

gcc/ada/

	* sem_ch13.adb
	(Validate_Aspect_Aggregate): Reject illegal case where none of
	Add_Named, Add_Unnamed, and Assign_Indexed are specified.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/sem_ch13.adb | 6 ++++++
 1 file changed, 6 insertions(+)
  

Patch

diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index a4782747aff..71eabb4f627 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -15729,6 +15729,12 @@  package body Sem_Ch13 is
             return;
          end if;
 
+      elsif No (Add_Named_Subp)
+        and then No (Add_Unnamed_Subp)
+        and then No (Assign_Indexed_Subp)
+      then
+         Error_Msg_N ("incomplete specification for aggregate", N);
+
       elsif Present (New_Indexed_Subp) /= Present (Assign_Indexed_Subp) then
          Error_Msg_N ("incomplete specification for indexed aggregate", N);
       end if;