[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
This commit is contained in:
Arnaud Charlet 2016-04-27 15:22:48 +02:00
parent 6616e39069
commit ac566cbe4b
6 changed files with 35 additions and 11 deletions

View File

@ -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,

View File

@ -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
}

View File

@ -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;
-----------------------------

View File

@ -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);

View File

@ -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;

View File

@ -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;