aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-06-19 12:32:08 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-06-19 12:32:08 +0200
commit1175f0b6e5ee84cd460248c9a19fae521135d0e3 (patch)
tree0585d2a25e513092897376dbaffd0c5da52d3030 /gcc
parent7e9c61e83e48581f9808b3796f474094aa58e3ce (diff)
downloadgcc-1175f0b6e5ee84cd460248c9a19fae521135d0e3.zip
gcc-1175f0b6e5ee84cd460248c9a19fae521135d0e3.tar.gz
gcc-1175f0b6e5ee84cd460248c9a19fae521135d0e3.tar.bz2
[multiple changes]
2009-06-19 Robert Dewar <dewar@adacore.com> * g-cgi.adb: Minor reformatting 2009-06-19 Eric Botcazou <ebotcazou@adacore.com> * s-intman-solaris.adb (Notify_Exception): Do not discriminate on the signal code for SIGFPE and raise Program_Error for SIGILL. * s-osinte-solaris.ads: Remove signal code constants for SIGFPE. 2009-06-19 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Nvis_Messages): Do not list an entity declared in a generic package if there is a visibility candidate that is declared in a regular package. From-SVN: r148691
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog17
-rw-r--r--gcc/ada/g-cgi.adb3
-rw-r--r--gcc/ada/s-intman-solaris.adb33
-rw-r--r--gcc/ada/s-osinte-solaris.ads11
-rw-r--r--gcc/ada/sem_ch8.adb16
5 files changed, 46 insertions, 34 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 0a469b2..580763e 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,20 @@
+2009-06-19 Robert Dewar <dewar@adacore.com>
+
+ * g-cgi.adb: Minor reformatting
+
+2009-06-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * s-intman-solaris.adb (Notify_Exception): Do not discriminate on the
+ signal code for SIGFPE and raise Program_Error for SIGILL.
+
+ * s-osinte-solaris.ads: Remove signal code constants for SIGFPE.
+
+2009-06-19 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Nvis_Messages): Do not list an entity declared in a
+ generic package if there is a visibility candidate that is declared in
+ a regular package.
+
2009-06-18 Olivier Hainque <hainque@adacore.com>
* system-aix64.ads: New file.
diff --git a/gcc/ada/g-cgi.adb b/gcc/ada/g-cgi.adb
index b1b6789..dad3738 100644
--- a/gcc/ada/g-cgi.adb
+++ b/gcc/ada/g-cgi.adb
@@ -123,8 +123,9 @@ package body GNAT.CGI is
(Natural'Value ("16#" & S (K + 1 .. K + 2) & '#'));
K := K + 3;
+ -- Plus sign is decoded as a space
+
elsif S (K) = '+' then
- -- + sign is decoded as a space
Result (J) := ' ';
K := K + 1;
diff --git a/gcc/ada/s-intman-solaris.adb b/gcc/ada/s-intman-solaris.adb
index e8bd6ff..170cd82 100644
--- a/gcc/ada/s-intman-solaris.adb
+++ b/gcc/ada/s-intman-solaris.adb
@@ -89,40 +89,27 @@ package body System.Interrupt_Management is
info : access siginfo_t;
context : access ucontext_t)
is
+ pragma Unreferenced (info);
+
begin
-- Perform the necessary context adjustments prior to a raise
-- from a signal handler.
Adjust_Context_For_Raise (signo, context.all'Address);
- -- Check that treatment of exception propagation here
- -- is consistent with treatment of the abort signal in
- -- System.Task_Primitives.Operations.
+ -- Check that treatment of exception propagation here is consistent with
+ -- treatment of the abort signal in System.Task_Primitives.Operations.
case signo is
when SIGFPE =>
- case info.si_code is
- when FPE_INTDIV |
- FPE_INTOVF |
- FPE_FLTDIV |
- FPE_FLTOVF |
- FPE_FLTUND |
- FPE_FLTRES |
- FPE_FLTINV |
- FPE_FLTSUB =>
-
- raise Constraint_Error;
-
- when others =>
- pragma Assert (False);
- null;
- end case;
-
- when SIGILL | SIGSEGV | SIGBUS =>
+ raise Constraint_Error;
+ when SIGILL =>
+ raise Program_Error;
+ when SIGSEGV =>
+ raise Storage_Error;
+ when SIGBUS =>
raise Storage_Error;
-
when others =>
- pragma Assert (False);
null;
end case;
end Notify_Exception;
diff --git a/gcc/ada/s-osinte-solaris.ads b/gcc/ada/s-osinte-solaris.ads
index 32213cca..a937f6e 100644
--- a/gcc/ada/s-osinte-solaris.ads
+++ b/gcc/ada/s-osinte-solaris.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- --
-- Copyright (C) 1991-1994, Florida State University --
--- Copyright (C) 1995-2008, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2009, Free Software Foundation, Inc. --
-- --
-- GNARL 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- --
@@ -168,15 +168,6 @@ package System.OS_Interface is
-- More analysis is needed, after which these declarations may need to
-- be changed.
- FPE_INTDIV : constant := 1; -- integer divide by zero
- FPE_INTOVF : constant := 2; -- integer overflow
- FPE_FLTDIV : constant := 3; -- floating point divide by zero
- FPE_FLTOVF : constant := 4; -- floating point overflow
- FPE_FLTUND : constant := 5; -- floating point underflow
- FPE_FLTRES : constant := 6; -- floating point inexact result
- FPE_FLTINV : constant := 7; -- invalid floating point operation
- FPE_FLTSUB : constant := 8; -- subscript out of range
-
type greg_t is new int;
type gregset_t is array (0 .. 18) of greg_t;
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb
index 8ddefb5..4063b12 100644
--- a/gcc/ada/sem_ch8.adb
+++ b/gcc/ada/sem_ch8.adb
@@ -3694,6 +3694,7 @@ package body Sem_Ch8 is
procedure Nvis_Messages is
Comp_Unit : Node_Id;
Ent : Entity_Id;
+ Found : Boolean := False;
Hidden : Boolean := False;
Item : Node_Id;
@@ -3781,10 +3782,25 @@ package body Sem_Ch8 is
if Is_Hidden (Ent) then
Error_Msg_N ("non-visible (private) declaration#!", N);
+
+ -- If the entity is declared in a generic package, it
+ -- cannot be visible, so there is no point in adding it
+ -- to the list of candidates if another homograph from a
+ -- non-generic package has been seen.
+
+ elsif Ekind (Scope (Ent)) = E_Generic_Package
+ and then Found
+ then
+ null;
+
else
Error_Msg_N -- CODEFIX
("non-visible declaration#!", N);
+ if Ekind (Scope (Ent)) /= E_Generic_Package then
+ Found := True;
+ end if;
+
if Is_Compilation_Unit (Ent)
and then
Nkind (Parent (Parent (N))) = N_Use_Package_Clause