From 64e86d00889c7694172fc130726bd3123c19564c Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Tue, 25 Feb 2014 15:52:42 +0100 Subject: [PATCH] [multiple changes] 2014-02-25 Yannick Moy * sem_prag.adb: Remove obsolete reference to SPARK RM in error message. 2014-02-25 Doug Rupp * init.c (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Enable for ARM. (__gnat_adjust_context_for_raise): Bump the PC by 2. 2014-02-25 Ed Schonberg * par-ch3.adb (P_Basic_Declarative_Items): In the case of a misplaced IS, add a statement sequence to improper body only if one has not been parsed already. 2014-02-25 Ed Schonberg * sem_attr.adb (Analyze_Attribute, case 'Update): Check for mismatch when multidimensional array is updated with a single index. From-SVN: r208126 --- gcc/ada/ChangeLog | 21 +++++++++++++++++++++ gcc/ada/init.c | 6 +++++- gcc/ada/par-ch3.adb | 1 + gcc/ada/sem_attr.adb | 4 ++++ gcc/ada/sem_prag.adb | 4 ++-- 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ac263d92ef17..6850ef5284d2 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,24 @@ +2014-02-25 Yannick Moy + + * sem_prag.adb: Remove obsolete reference to SPARK RM in error message. + +2014-02-25 Doug Rupp + + * init.c (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Enable for ARM. + (__gnat_adjust_context_for_raise): Bump the PC by 2. + +2014-02-25 Ed Schonberg + + * par-ch3.adb (P_Basic_Declarative_Items): In the case of a + misplaced IS, add a statement sequence to improper body only if + one has not been parsed already. + +2014-02-25 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case 'Update): Check for + mismatch when multidimensional array is updated with a single + index. + 2014-02-25 Yannick Moy * sem_ch3.adb, sem_ch5.adb, sem_prag.adb, sem_attr.adb, errout.ads, diff --git a/gcc/ada/init.c b/gcc/ada/init.c index d61086e214c1..9ae5f566bcd9 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -452,7 +452,8 @@ void fake_linux_sigemptyset (sigset_t *set) #endif -#if defined (i386) || defined (__x86_64__) || defined (__ia64__) +#if defined (i386) || defined (__x86_64__) || defined (__ia64__) \ + || defined (__ARMEL__) #define HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE @@ -496,6 +497,9 @@ __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext) #elif defined (__ia64__) /* ??? The IA-64 unwinder doesn't compensate for signals. */ mcontext->sc_ip++; +#elif defined (__ARMEL__) + /* ARM Bump has to be an even number because of odd/even architecture. */ + mcontext->arm_pc+=2; #endif } diff --git a/gcc/ada/par-ch3.adb b/gcc/ada/par-ch3.adb index 4f8afb0286f4..de50e023e4c2 100644 --- a/gcc/ada/par-ch3.adb +++ b/gcc/ada/par-ch3.adb @@ -4631,6 +4631,7 @@ package body Ch3 is if Nkind_In (Decl, N_Subprogram_Body, N_Package_Body, N_Task_Body) + and then No (Handled_Statement_Sequence (Decl)) then Set_Handled_Statement_Sequence (Decl, Make_Handled_Sequence_Of_Statements (Sloc (Decl), diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 45210e4f8e34..38c7e072f5e3 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -6259,6 +6259,10 @@ package body Sem_Attr is -- dimensional array. Index_Type := First_Index (P_Type); + if Present (Next_Index (Index_Type)) then + Error_Msg_N + ("too few subscripts in array reference", Comp); + end if; Index := First (Choices (Assoc)); while Present (Index) loop diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 8047a4cda7c7..bb5dafaa5e86 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -10554,8 +10554,8 @@ package body Sem_Prag is else Error_Msg_N - ("simple option not allowed in state declaration " - & "(SPARK RM 7.1.4(3))", Opt); + ("simple option not allowed in state declaration", + Opt); end if; Next (Opt); -- 2.47.2