This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Tested on i686-linux, committed on mainline.
When propagating an exception raised during a protected entry call, we
should also propagate the exception message as required by Ada semantics.
--
Test case:
gnatmake -q q && q should display:
Exception name: P.E
Message: yo!
--
package P is
E : exception;
protected PO is
entry Wait;
procedure Do_Raise;
private
Raised : Boolean := False;
end PO;
end P;
with Ada.Exceptions; use Ada.Exceptions;
package body P is
protected body PO is
entry Wait when Raised is begin
Raise_Exception (E'Identity, "yo!");
end Wait;
procedure Do_Raise is begin Raised := True; end Do_Raise;
end PO;
end P;
with Ada.Exceptions; use Ada.Exceptions;
with Ada.Text_IO; use Ada.Text_IO;
with P; use P;
procedure Q is
task R;
task body R is begin PO.Do_Raise; end R;
begin
PO.Wait;
exception when X : others => Put_Line (Exception_Information (X));
end Q;
Also add support for pragma Restrictions Max_Entry_Queue_Length. It had
already been done for the Ravenscar profile, and has been finished for the
general case (for any value of the queue length).
2005-06-14 Arnaud Charlet <charlet@adacore.com>
Jose Ruiz <ruiz@adacore.com>
* s-tposen.adb, s-tpobop.adb
(Exceptional_Complete_Rendezvous): Save the occurrence and not only
the exception id.
(PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
there is no violation of the Max_Entry_Queue_Length restriction (if it
has been set); Program_Error is raised otherwise.
(Requeue_Call): Before requeuing the task on the target entry queue we
check that there is no violation of the Max_Entry_Queue_Length
restriction (if it has been set); Program_Error is raised otherwise.
Attachment:
difs.53
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |