[multiple changes]

2014-07-17  Gary Dismukes  <dismukes@adacore.com>

	* exp_disp.adb: Minor reformatting.
	* exp_disp.adb: Minor code reorganization.

2014-07-17  Thomas Quinot  <quinot@adacore.com>

	* gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not
	require an explicit SSO attribute definition clause on a composite type
	just because one of its components has one.

2014-07-17  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite
	attribute out of existence if the enclosing pragma is ignored.
	* sem_util.adb: Minor reformatting.

2014-07-17  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Expand_Array_Aggregate): Handle properly an
	array aggregate expanded into assignments when it appears as a
	local declaration in an inlined body.

2014-07-17  Doug Rupp  <rupp@adacore.com>

	* init.c [__ANDROID__]: Modify for ZCX.
	* exp_aggr.adb: Minor reformatting
	* sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments.

2014-07-17  Robert Dewar  <dewar@adacore.com>

	* a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads,
	exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi,
	scng.adb: Remove incorrect usage "allow to" and "allows to".

2014-07-17  Robert Dewar  <dewar@adacore.com>

	* exp_dist.adb: Minor reformatting.

From-SVN: r212737
This commit is contained in:
Arnaud Charlet 2014-07-17 09:27:38 +02:00
parent 6ccdd97705
commit 6782b1ef34
19 changed files with 570 additions and 583 deletions

View File

@ -1,3 +1,42 @@
2014-07-17 Gary Dismukes <dismukes@adacore.com>
* exp_disp.adb: Minor reformatting.
* exp_disp.adb: Minor code reorganization.
2014-07-17 Thomas Quinot <quinot@adacore.com>
* gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not
require an explicit SSO attribute definition clause on a composite type
just because one of its components has one.
2014-07-17 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite
attribute out of existence if the enclosing pragma is ignored.
* sem_util.adb: Minor reformatting.
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* exp_aggr.adb (Expand_Array_Aggregate): Handle properly an
array aggregate expanded into assignments when it appears as a
local declaration in an inlined body.
2014-07-17 Doug Rupp <rupp@adacore.com>
* init.c [__ANDROID__]: Modify for ZCX.
* exp_aggr.adb: Minor reformatting
* sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments.
2014-07-17 Robert Dewar <dewar@adacore.com>
* a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads,
exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi,
scng.adb: Remove incorrect usage "allow to" and "allows to".
2014-07-17 Robert Dewar <dewar@adacore.com>
* exp_dist.adb: Minor reformatting.
2014-07-17 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Improve documentation of Unrestricted_Access.

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@ -64,9 +64,9 @@
-- preallocated memory can used later by Append/Insert operations
-- without reallocation.
-- Reference counting uses GCC builtin atomic operations, which allows to
-- safely share internal data between Ada tasks. Nevertheless, this doesn't
-- make objects of Unbounded_String thread-safe: each instance can't be
-- Reference counting uses GCC builtin atomic operations, which allows safe
-- sharing of internal data between Ada tasks. Nevertheless, this does not
-- make objects of Unbounded_String thread-safe: an instance cannot be
-- accessed by several tasks simultaneously.
with Ada.Strings.Maps;

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@ -471,10 +471,10 @@ private
-- preallocated memory can used later by Append/Insert operations
-- without reallocation.
-- Reference counting uses GCC builtin atomic operations, which allows to
-- safely share internal data between Ada tasks. Nevertheless, this not
-- make objects of Unbounded_Wide_String thread-safe, so each instance
-- can't be accessed by several tasks simultaneously.
-- Reference counting uses GCC builtin atomic operations, which allows safe
-- sharing of internal data between Ada tasks. Nevertheless, this does not
-- make objects of Unbounded_String thread-safe: an instance cannot be
-- accessed by several tasks simultaneously.
pragma Stream_Convert (Unbounded_Wide_String, To_Unbounded, To_Wide_String);
-- Provide stream routines without dragging in Ada.Streams

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@ -485,10 +485,10 @@ private
-- preallocated memory can used later by Append/Insert operations
-- without reallocation.
-- Reference counting uses GCC builtin atomic operations, which allows to
-- safely share internal data between Ada tasks. Nevertheless, this not
-- make objects of Unbounded_Wide_Wide_String thread-safe, so each instance
-- can't be accessed by several tasks simultaneously.
-- Reference counting uses GCC builtin atomic operations, which allows safe
-- sharing of internal data between Ada tasks. Nevertheless, this does not
-- make objects of Unbounded_String thread-safe: an instance cannot be
-- accessed by several tasks simultaneously.
pragma Stream_Convert
(Unbounded_Wide_Wide_String, To_Unbounded, To_Wide_Wide_String);

View File

@ -5235,7 +5235,17 @@ package body Exp_Aggr is
Scalar_Comp => Is_Scalar_Type (Ctyp));
end;
if Comes_From_Source (Tmp) then
-- If the aggregate is the expression in a declaration, the expanded
-- code must be inserted after it. The defining entity might not come
-- from source if this is part of an inlined body, but the declaration
-- itself will.
if Comes_From_Source (Tmp)
or else
(Nkind (Parent (N)) = N_Object_Declaration
and then Comes_From_Source (Parent (N))
and then Tmp = Defining_Entity (Parent (N)))
then
declare
Node_After : constant Node_Id := Next (Parent_Node);

View File

@ -215,7 +215,7 @@ package body Exp_Ch7 is
-- A classwide type can always potentially have controlled components
-- but the record controller of the corresponding actual type may not
-- be known at compile time so the dispatch table contains a special
-- field that allows to compute the offset of the record controller
-- field that allows computation of the offset of the record controller
-- dynamically. See s-finimp.Deep_Tag_Attach and a-tags.RC_Offset.
-- Here is a simple example of the expansion of a controlled block :

File diff suppressed because it is too large Load Diff

View File

@ -1162,18 +1162,15 @@ package body Exp_Dist is
return
Make_Procedure_Call_Statement (Loc,
Name =>
New_Occurrence_Of
(RTE (RE_NVList_Add_Item), Loc),
Name =>
New_Occurrence_Of (RTE (RE_NVList_Add_Item), Loc),
Parameter_Associations => New_List (
New_Occurrence_Of (NVList, Loc),
Make_Function_Call (Loc,
Name =>
New_Occurrence_Of
(RTE (RE_To_PolyORB_String), Loc),
Name =>
New_Occurrence_Of (RTE (RE_To_PolyORB_String), Loc),
Parameter_Associations => New_List (
Make_String_Literal (Loc,
Strval => Parameter_Name_String))),
Make_String_Literal (Loc, Strval => Parameter_Name_String))),
New_Occurrence_Of (Any, Loc),
Parameter_Mode));
end Add_Parameter_To_NVList;

View File

@ -1131,25 +1131,16 @@ package body Freeze is
Attribute_Scalar_Storage_Order);
Comp_ADC_Present := Present (Comp_ADC);
-- Case of enclosing type not having explicit SSO: component cannot
-- have it either.
-- Case of record or array component: check storage order compatibility
if No (ADC) then
if Comp_ADC_Present then
Error_Msg_N
("composite type must have explicit scalar storage order",
Err_Node);
end if;
-- Case of enclosing type having explicit SSO: check compatible
-- attribute on Comp_Type if composite.
elsif Is_Record_Type (Comp_Type) or else Is_Array_Type (Comp_Type) then
if Is_Record_Type (Comp_Type) or else Is_Array_Type (Comp_Type) then
Comp_SSO_Differs :=
Reverse_Storage_Order (Encl_Type)
/=
Reverse_Storage_Order (Comp_Type);
-- Parent and extension must have same storage order
if Present (Comp) and then Chars (Comp) = Name_uParent then
if Comp_SSO_Differs then
Error_Msg_N
@ -1157,10 +1148,16 @@ package body Freeze is
& "parent", Err_Node);
end if;
elsif No (Comp_ADC) then
-- If enclosing composite has explicit SSO then nested composite must
-- have explicit SSO as well.
elsif Present (ADC) and then No (Comp_ADC) then
Error_Msg_N ("nested composite must have explicit scalar "
& "storage order", Err_Node);
-- If component and composite SSO differs, check that component
-- falls on byte boundaries and isn't packed.
elsif Comp_SSO_Differs then
-- Component SSO differs from enclosing composite:
@ -1182,10 +1179,10 @@ package body Freeze is
end if;
end if;
-- Enclosing type has explicit SSO, non-composite component must not
-- Enclosing type has explicit SSO: non-composite component must not
-- be aliased.
elsif Component_Aliased then
elsif Present (ADC) and then Component_Aliased then
Error_Msg_N
("aliased component not permitted for type with "
& "explicit Scalar_Storage_Order", Err_Node);

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 2002-2010, AdaCore --
-- Copyright (C) 2002-2014, AdaCore --
-- --
-- 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- --
@ -121,8 +121,8 @@ package GNAT.Perfect_Hash_Generators is
-- Raised after Tries unsuccessful runs
procedure Compute (Position : String := Default_Position);
-- Compute the hash function. Position allows to define selection of
-- character positions used in the word hash function. Positions can be
-- Compute the hash function. Position allows the definition of selection
-- of character positions used in the word hash function. Positions can be
-- separated by commas and ranges like x-y may be used. Character '$'
-- represents the final character of a word. With an empty position, the
-- generator automatically produces positions to reduce the memory usage.

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 2001-2013, AdaCore --
-- Copyright (C) 2001-2014, AdaCore --
-- --
-- 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- --
@ -759,8 +759,8 @@ package GNAT.Sockets is
end case;
end record;
-- A request flag allows to specify the type of message transmissions or
-- receptions. A request flag can be combination of zero or more
-- A request flag allows specification of the type of message transmissions
-- or receptions. A request flag can be combination of zero or more
-- predefined request flags.
type Request_Flag_Type is private;
@ -904,7 +904,7 @@ package GNAT.Sockets is
-- Item'First - 1 when the socket has been closed by peer. This is not
-- an error, and no exception is raised in this case unless Item'First
-- is Stream_Element_Offset'First, in which case Constraint_Error is
-- raised. Flags allows to control the reception. Raise Socket_Error on
-- raised. Flags allows control of the reception. Raise Socket_Error on
-- error.
procedure Receive_Socket
@ -916,7 +916,7 @@ package GNAT.Sockets is
-- Receive message from Socket. If Socket is not connection-oriented, the
-- source address From of the message is filled in. Last is the index
-- value such that Item (Last) is the last character assigned. Flags
-- allows to control the reception. Raises Socket_Error on error.
-- allows control of the reception. Raises Socket_Error on error.
procedure Receive_Vector
(Socket : Socket_Type;
@ -958,7 +958,7 @@ package GNAT.Sockets is
Last : out Ada.Streams.Stream_Element_Offset;
Flags : Request_Flag_Type := No_Request_Flag);
-- Transmit a message over a socket. Upon return, Last is set to the index
-- within Item of the last element transmitted. Flags allows to control
-- within Item of the last element transmitted. Flags allows control of
-- the transmission. Raises Socket_Error on any detected error condition.
procedure Send_Socket
@ -968,7 +968,7 @@ package GNAT.Sockets is
To : Sock_Addr_Type;
Flags : Request_Flag_Type := No_Request_Flag);
-- Transmit a message over a datagram socket. The destination address is
-- To. Flags allows to control the transmission. Raises Socket_Error on
-- To. Flags allows control of the transmission. Raises Socket_Error on
-- error.
procedure Send_Vector
@ -1027,8 +1027,8 @@ package GNAT.Sockets is
-- subprogram when the stream is not needed anymore.
type Socket_Set_Type is limited private;
-- This type allows to manipulate sets of sockets. It allows to wait for
-- events on multiple endpoints at one time. This type has default
-- This type allows manipulation of sets of sockets. It allows waiting
-- for events on multiple endpoints at one time. This type has default
-- initialization, and the default value is the empty set.
--
-- Note: This type used to contain a pointer to dynamically allocated
@ -1072,8 +1072,8 @@ package GNAT.Sockets is
-- Check_Selector provides the very same behaviour. The only difference is
-- that it does not watch for exception events. Note that on some platforms
-- it is kept process blocking on purpose. The timeout parameter allows the
-- user to have the behaviour he wants. Abort_Selector allows to safely
-- abort a blocked Check_Selector call. A special socket is opened by
-- user to have the behaviour he wants. Abort_Selector allows the safe
-- abort of a blocked Check_Selector call. A special socket is opened by
-- Create_Selector and included in each call to Check_Selector.
--
-- Abort_Selector causes an event to occur on this descriptor in order to

View File

@ -9303,9 +9303,8 @@ that make up scalar components are ordered within S:
-- the former is used.
@end smallexample
Other properties are
as for standard representation attribute @code{Bit_Order}, as defined by
Ada RM 13.5.3(4). The default is @code{System.Default_Bit_Order}.
Other properties are as for standard representation attribute @code{Bit_Order},
as defined by Ada RM 13.5.3(4). The default is @code{System.Default_Bit_Order}.
For a record type @var{S}, if @code{@var{S}'Scalar_Storage_Order} is
specified explicitly, it shall be equal to @code{@var{S}'Bit_Order}. Note:
@ -9316,18 +9315,15 @@ specified explicitly and set to the same value.
For a record extension, the derived type shall have the same scalar storage
order as the parent type.
If a component of @var{S} has itself a record or array type, then it shall also
have a @code{Scalar_Storage_Order} attribute definition clause. In addition,
if the component is a packed array, or does not start on a byte boundary, then
the scalar storage order specified for S and for the nested component type shall
be identical.
If a component of @var{S} is of a record or array type, then that type shall
also have a @code{Scalar_Storage_Order} attribute definition clause.
If @var{S} appears as the type of a record or array component, the enclosing
record or array shall also have a @code{Scalar_Storage_Order} attribute
definition clause.
A component of a record or array type that is a packed array, or that
does not start on a byte boundary, must have the same scalar storage order
as the enclosing record or array type.
No component of a type that has a @code{Scalar_Storage_Order} attribute
definition may be aliased.
No component of a type that has an explicit @code{Scalar_Storage_Order}
attribute definition may be aliased.
A confirming @code{Scalar_Storage_Order} attribute definition clause (i.e.
with a value equal to @code{System.Default_Bit_Order}) has no effect.

View File

@ -1,3 +1,4 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@ -18765,11 +18766,11 @@ leak.
@noindent
@code{gnatmem} makes use of the output created by the special version of
allocation and deallocation routines that record call information. This
allows to obtain accurate dynamic memory usage history at a minimal cost to
the execution speed. Note however, that @code{gnatmem} is not supported on
all platforms (currently, it is supported on AIX, HP-UX, GNU/Linux,
Solaris and Windows NT/2000/XP (x86).
allocation and deallocation routines that record call information. This allows
it to obtain accurate dynamic memory usage history at a minimal cost to the
execution speed. Note however, that @code{gnatmem} is not supported on all
platforms (currently, it is supported on AIX, HP-UX, GNU/Linux, Solaris and
Windows NT/2000/XP (x86).
@noindent
The @code{gnatmem} command has the form
@ -18894,8 +18895,8 @@ Do the @code{gnatmem} processing starting from @file{file}, rather than
@item -m n
@cindex @option{-m} (@code{gnatmem})
This switch causes @code{gnatmem} to mask the allocation roots that have less
than n leaks. The default value is 1. Specifying the value of 0 will allow to
examine even the roots that didn't result in leaks.
than n leaks. The default value is 1. Specifying the value of 0 will allow
examination of even the roots that did not result in leaks.
@item -s order
@cindex @option{-s} (@code{gnatmem})
@ -21636,9 +21637,9 @@ breakpoint condition (before the @code{if}).
@item task @var{taskno}
@cindex Task switching
This command allows to switch to the task referred by @var{taskno}. In
particular, This allows to browse the backtrace of the specified
task. It is advised to switch back to the original task before
This command allows switching to the task referred by @var{taskno}. In
particular, this allows browsing of the backtrace of the specified
task. It is advisable to switch back to the original task before
continuing execution otherwise the scheduling of the program may be
perturbed.
@end table

View File

@ -6,7 +6,7 @@
* *
* C Implementation File *
* *
* Copyright (C) 1992-2013, Free Software Foundation, Inc. *
* Copyright (C) 1992-2014, 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- *
@ -1922,7 +1922,7 @@ __gnat_error_handler (int sig, siginfo_t *si, void *sc)
#include "sigtramp.h"
__gnat_sigtramp (sig, (void *)si, (void *)sc,
(sighandler_t *)&__gnat_map_signal);
(__sigtramphandler_t *)&__gnat_map_signal);
#else
__gnat_map_signal (sig, si, sc);
@ -2372,12 +2372,23 @@ __gnat_install_handler (void)
/*******************/
#include <signal.h>
#include <stdlib.h>
#include "sigtramp.h"
#define HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE
void
__gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext)
{
mcontext_t *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
/* ARM Bump has to be an even number because of odd/even architecture. */
((mcontext_t *) mcontext)->arm_pc += 2;
}
static void
__gnat_error_handler (int sig,
siginfo_t *si ATTRIBUTE_UNUSED,
void *ucontext ATTRIBUTE_UNUSED)
__gnat_map_signal (int sig,
siginfo_t *si ATTRIBUTE_UNUSED,
void *ucontext ATTRIBUTE_UNUSED)
{
struct Exception_Data *exception;
const char *msg;
@ -2407,6 +2418,17 @@ __gnat_error_handler (int sig,
Raise_From_Signal_Handler (exception, msg);
}
static void
__gnat_error_handler (int sig,
siginfo_t *si ATTRIBUTE_UNUSED,
void *ucontext ATTRIBUTE_UNUSED)
{
__gnat_adjust_context_for_raise (sig, ucontext);
__gnat_sigtramp (sig, (void *) si, (void *) ucontext,
(__sigtramphandler_t *)&__gnat_map_signal);
}
/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size. */
char __gnat_alternate_stack[16 * 1024];

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2014, 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- --
@ -67,7 +67,7 @@ package body Scng is
procedure Accumulate_Token_Checksum;
pragma Inline (Accumulate_Token_Checksum);
-- Called after each numeric literal and identifier/keyword. For keywords,
-- the token used is Tok_Identifier. This allows to detect additional
-- the token used is Tok_Identifier. This allows detection of additional
-- spaces added in sources when using the builder switch -m.
procedure Accumulate_Token_Checksum_GNAT_6_3;

View File

@ -3904,10 +3904,10 @@ package body Sem_Attr is
Context : constant Node_Id := Parent (N);
Attr : Node_Id;
Enclosing_Loop : Node_Id;
In_Loop_Assertion : Boolean := False;
Loop_Id : Entity_Id := Empty;
Scop : Entity_Id;
Stmt : Node_Id;
Enclosing_Pragma : Node_Id := Empty;
-- Start of processing for Loop_Entry
@ -4025,7 +4025,7 @@ package body Sem_Attr is
Name_Assert_And_Cut,
Name_Assume)
then
In_Loop_Assertion := True;
Enclosing_Pragma := Original_Node (Stmt);
-- Locate the enclosing loop (if any). Note that Ada 2012 array
-- iteration may be expanded into several nested loops, we are
@ -4060,12 +4060,11 @@ package body Sem_Attr is
-- purpose if they appear in an appropriate location in a loop,
-- which was already checked by the top level pragma circuit).
if not In_Loop_Assertion then
Error_Attr
("attribute % must appear within appropriate pragma", N);
if No (Enclosing_Pragma) then
Error_Attr ("attribute% must appear within appropriate pragma", N);
end if;
-- A Loop_Entry that applies to a given loop statement shall not
-- A Loop_Entry that applies to a given loop statement must not
-- appear within a body of accept statement, if this construct is
-- itself enclosed by the given loop statement.
@ -4074,10 +4073,8 @@ package body Sem_Attr is
if Ekind (Scop) = E_Loop and then Scop = Loop_Id then
exit;
elsif Ekind_In (Scop, E_Block, E_Loop, E_Return_Statement) then
null;
else
Error_Attr
("attribute % cannot appear in body or accept statement", N);
@ -4101,14 +4098,28 @@ package body Sem_Attr is
null;
elsif Present (Enclosing_Loop)
and then Entity (Identifier (Enclosing_Loop)) /= Loop_Id
and then Entity (Identifier (Enclosing_Loop)) /= Loop_Id
then
Error_Attr_P ("prefix of attribute % that applies to "
& "outer loop must denote an entity");
Error_Attr_P
("prefix of attribute % that applies to "
& "outer loop must denote an entity");
elsif Is_Potentially_Unevaluated (P) then
Error_Attr_P ("prefix of attribute % that is potentially "
& "unevaluated must denote an entity");
Error_Attr_P
("prefix of attribute % that is potentially "
& "unevaluated must denote an entity");
end if;
-- Finally, if the Loop_Entry attribute appears within a pragma
-- that is ignored, we replace P'Loop_Entity by P to avoid useless
-- generation of the loop entity variable. Note that in this case
-- the expression won't be executed anyway, and this substitution
-- keeps types happy!
-- We should really do this in the expander, but it's easier here
if Is_Ignored (Enclosing_Pragma) then
Rewrite (N, Relocate_Node (P));
end if;
end Loop_Entry;

View File

@ -14669,6 +14669,7 @@ package body Sem_Util is
return Name;
end Original_Aspect_Name;
--------------------------------------
-- Original_Corresponding_Operation --
--------------------------------------

View File

@ -6,7 +6,7 @@
* *
* Asm Implementation File *
* *
* Copyright (C) 2013, Free Software Foundation, Inc. *
* Copyright (C) 2014, 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- *
@ -49,7 +49,7 @@
sequences. The general idea is to establish CFA as sigcontext->sc_pregs
and state where to find the registers as offsets from there.
As of today, we support a single stub, providing CFI info for common
As of today, we support a stub providing CFI info for common
registers (GPRs, LR, ...). We might need variants with support for floating
point or altivec registers as well at some point.
@ -75,7 +75,7 @@
extern void __gnat_sigtramp_common
(int signo, void *siginfo, void *sigcontext,
sighandler_t * handler, void * sc_pregs);
__sigtramphandler_t * handler, void * sc_pregs);
/* -------------------------------------
@ -85,11 +85,11 @@ extern void __gnat_sigtramp_common
We enforce optimization to minimize the overhead of the extra layer. */
void __gnat_sigtramp (int signo, void *si, void *sc,
sighandler_t * handler)
__sigtramphandler_t * handler)
__attribute__((optimize(2)));
void __gnat_sigtramp (int signo, void *si, void *sc,
sighandler_t * handler)
__sigtramphandler_t * handler)
{
struct sigcontext * sctx = (struct sigcontext *) sc;

View File

@ -6,7 +6,7 @@
* *
* Asm Implementation File *
* *
* Copyright (C) 2011-2013, Free Software Foundation, Inc. *
* Copyright (C) 2011-2014, 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- *
@ -49,7 +49,7 @@
sequences. The general idea is to establish CFA as sigcontext->sc_pregs
and state where to find the registers as offsets from there.
As of today, we support a single stub, providing CFI info for common
As of today, we support a stub providing CFI info for common
registers (GPRs, LR, ...). We might need variants with support for floating
point or altivec registers as well at some point.
@ -75,7 +75,7 @@
extern void __gnat_sigtramp_common
(int signo, void *siginfo, void *sigcontext,
sighandler_t * handler, void * sc_pregs);
__sigtramphandler_t * handler, void * sc_pregs);
/* -------------------------------------
@ -85,11 +85,11 @@ extern void __gnat_sigtramp_common
We enforce optimization to minimize the overhead of the extra layer. */
void __gnat_sigtramp (int signo, void *si, void *sc,
sighandler_t * handler)
__sigtramphandler_t * handler)
__attribute__((optimize(2)));
void __gnat_sigtramp (int signo, void *si, void *sc,
sighandler_t * handler)
__sigtramphandler_t * handler)
{
struct sigcontext * sctx = (struct sigcontext *) sc;