diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-06-19 12:32:08 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-06-19 12:32:08 +0200 |
commit | 1175f0b6e5ee84cd460248c9a19fae521135d0e3 (patch) | |
tree | 0585d2a25e513092897376dbaffd0c5da52d3030 /gcc | |
parent | 7e9c61e83e48581f9808b3796f474094aa58e3ce (diff) | |
download | gcc-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/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/ada/g-cgi.adb | 3 | ||||
-rw-r--r-- | gcc/ada/s-intman-solaris.adb | 33 | ||||
-rw-r--r-- | gcc/ada/s-osinte-solaris.ads | 11 | ||||
-rw-r--r-- | gcc/ada/sem_ch8.adb | 16 |
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 |