diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2016-04-27 15:22:48 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2016-04-27 15:22:48 +0200 |
commit | ac566cbe4b11e71b0c9c3b595e1787fe06487310 (patch) | |
tree | 888a982c8d5a20b6f3cf5a35c09d9e6708edb2a6 /gcc | |
parent | 6616e390695caad491386d19621b4014efaf394f (diff) | |
download | gcc-ac566cbe4b11e71b0c9c3b595e1787fe06487310.zip gcc-ac566cbe4b11e71b0c9c3b595e1787fe06487310.tar.gz gcc-ac566cbe4b11e71b0c9c3b595e1787fe06487310.tar.bz2 |
[multiple changes]
2016-04-27 Arnaud Charlet <charleT@adacore.com>
* sinput-l.ads, sem_ch13.adb: Minor editing.
2016-04-27 Doug Rupp <rupp@adacore.com>
* init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]:
Bump the pc so the lower order bit is set.
2016-04-27 Ed Schonberg <schonberg@adacore.com>
* sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is
enabled, report an empty range in a case construct.
From-SVN: r235503
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/ada/init.c | 7 | ||||
-rw-r--r-- | gcc/ada/sem_case.adb | 10 | ||||
-rw-r--r-- | gcc/ada/sem_case.ads | 7 | ||||
-rw-r--r-- | gcc/ada/sem_ch13.adb | 4 | ||||
-rw-r--r-- | gcc/ada/sinput-l.ads | 4 |
6 files changed, 35 insertions, 11 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index cdc9cb8..a69659d 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,17 @@ +2016-04-27 Arnaud Charlet <charleT@adacore.com> + + * sinput-l.ads, sem_ch13.adb: Minor editing. + +2016-04-27 Doug Rupp <rupp@adacore.com> + + * init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]: + Bump the pc so the lower order bit is set. + +2016-04-27 Ed Schonberg <schonberg@adacore.com> + + * sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is + enabled, report an empty range in a case construct. + 2016-04-27 Arnaud Charlet <charlet@adacore.com> * sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb, diff --git a/gcc/ada/init.c b/gcc/ada/init.c index 43ea1e7..440a068 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 1992-2015, Free Software Foundation, Inc. * + * Copyright (C) 1992-2016, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -503,6 +503,11 @@ __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext) #elif defined (__ARMEL__) /* ARM Bump has to be an even number because of odd/even architecture. */ mcontext->arm_pc+=2; +#ifdef __thumb2__ + /* For thumb, the return address much have the low order bit set, otherwise + the unwwinder will reset to "arm" mode upon return. It's a feature. */ + mcontext->arm_pc+=1; +#endif #endif } diff --git a/gcc/ada/sem_case.adb b/gcc/ada/sem_case.adb index a23358a..ee845ee 100644 --- a/gcc/ada/sem_case.adb +++ b/gcc/ada/sem_case.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1996-2015, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2016, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -1126,9 +1126,13 @@ package body Sem_Case is ----------- procedure No_OP (C : Node_Id) is - pragma Warnings (Off, C); begin - null; + if Nkind (C) = N_Range and then Warn_On_Redundant_Constructs then + Error_Msg_N ("choice is an empty range?", C); + + else + null; + end if; end No_OP; ----------------------------- diff --git a/gcc/ada/sem_case.ads b/gcc/ada/sem_case.ads index c6917f0..9e9e828 100644 --- a/gcc/ada/sem_case.ads +++ b/gcc/ada/sem_case.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1996-2013, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2016, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -86,9 +86,10 @@ with Types; use Types; package Sem_Case is procedure No_OP (C : Node_Id); - -- The no-operation routine. Does absolutely nothing. Can be used + -- The no-operation routine. Does mostly nothing. Can be used -- in the following generics for the parameters Process_Empty_Choice, - -- or Process_Associated_Node. + -- or Process_Associated_Node. In the case of an empty range choice, + -- routine emits a warning when Warn_On_Redundant_Constructs is enabled. generic with procedure Process_Associated_Node (A : Node_Id); diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index d42b7ca..8afc542 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -6202,8 +6202,8 @@ package body Sem_Ch13 is ----------------------------------------------- procedure Analyze_Enumeration_Representation_Clause (N : Node_Id) is - Ident : constant Node_Id := Identifier (N); - Aggr : constant Node_Id := Array_Aggregate (N); + Ident : constant Node_Id := Identifier (N); + Aggr : constant Node_Id := Array_Aggregate (N); Enumtype : Entity_Id; Elit : Entity_Id; Expr : Node_Id; diff --git a/gcc/ada/sinput-l.ads b/gcc/ada/sinput-l.ads index c1ac9c5..9cb2948 100644 --- a/gcc/ada/sinput-l.ads +++ b/gcc/ada/sinput-l.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2014, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2016, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -119,7 +119,7 @@ private -- be applied, used to ensure that no incorrect adjustments are -- made. Really it is a bug if anyone ever tries to adjust outside -- this range, but since we are only doing this anyway for getting - -- better error messages, it is not critical + -- better error messages, it is not critical. end record; |