diff options
Diffstat (limited to 'gcc/ada/sem_ch6.adb')
-rw-r--r-- | gcc/ada/sem_ch6.adb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index b568ebb..5f06161 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -2504,6 +2504,19 @@ package body Sem_Ch6 is end if; end if; + -- Ada 2012 aspects may appear in a subprogram body, but only if there + -- is no previous spec. + + if Has_Aspects (N) then + if Present (Corresponding_Spec (N)) then + Error_Msg_N + ("aspect specifications must appear in subprogram declaration", + N); + else + Analyze_Aspect_Specifications (N, Body_Id); + end if; + end if; + -- Previously we scanned the body to look for nested subprograms, and -- rejected an inline directive if nested subprograms were present, -- because the back-end would generate conflicting symbols for the |