diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-08-17 11:28:48 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-08-17 11:28:48 +0200 |
commit | 89c273b45787a36d90bdf91c0eb0f182a7fb960e (patch) | |
tree | 03156472b70475e068c50a7528cdfcad587c7b75 /gcc | |
parent | b76e28c64d8a13f0fcaf6bddee53c06115c1d186 (diff) | |
download | gcc-89c273b45787a36d90bdf91c0eb0f182a7fb960e.zip gcc-89c273b45787a36d90bdf91c0eb0f182a7fb960e.tar.gz gcc-89c273b45787a36d90bdf91c0eb0f182a7fb960e.tar.bz2 |
[multiple changes]
2009-08-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Definition): Do not create an Itype reference for
an anonymous access type whose designated type is generic.
2009-08-17 Arnaud Charlet <charlet@adacore.com>
* comperr.adb (Compiler_Abort): Do not generate a bug box when in
codepeer mode, friendlier.
From-SVN: r150824
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/ada/comperr.adb | 16 | ||||
-rw-r--r-- | gcc/ada/sem_ch3.adb | 3 |
3 files changed, 25 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index f345b5d..10e1516 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2009-08-17 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Access_Definition): Do not create an Itype reference for + an anonymous access type whose designated type is generic. + +2009-08-17 Arnaud Charlet <charlet@adacore.com> + + * comperr.adb (Compiler_Abort): Do not generate a bug box when in + codepeer mode, friendlier. + 2009-08-10 Laurent GUERBY <laurent@guerby.net> * make.adb: Handle multilib diff --git a/gcc/ada/comperr.adb b/gcc/ada/comperr.adb index 43680b1..da6c8a6 100644 --- a/gcc/ada/comperr.adb +++ b/gcc/ada/comperr.adb @@ -32,6 +32,7 @@ with Debug; use Debug; with Errout; use Errout; with Gnatvsn; use Gnatvsn; with Namet; use Namet; +with Opt; use Opt; with Osint; use Osint; with Output; use Output; with Sinput; use Sinput; @@ -121,19 +122,26 @@ package body Comperr is -- practical interface, since giving scary bug boxes on unsupported -- features is definitely not helpful. + -- Similarly if we are generating SCIL, an error message is sufficient + -- instead of generating a bug box. + -- Note that the call to Error_Msg_N below sets Serious_Errors_Detected -- to 1, so we use the regular mechanism below in order to display a -- "compilation abandoned" message and exit, so we still know we have -- this case (and -gnatdk can still be used to get the bug box). - if VM_Target = CLI_Target + if (VM_Target = CLI_Target or else CodePeer_Mode) and then Serious_Errors_Detected = 0 and then not Debug_Flag_K and then Sloc (Current_Error_Node) > No_Location then - Error_Msg_N - ("unsupported construct in this context", - Current_Error_Node); + if VM_Target = CLI_Target then + Error_Msg_N + ("unsupported construct in this context", + Current_Error_Node); + else + Error_Msg_N ("cannot generate 'S'C'I'L", Current_Error_Node); + end if; end if; -- If any errors have already occurred, then we guess that the abort diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index adea69d..8b24cd6 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -939,9 +939,12 @@ package body Sem_Ch3 is -- type declaration. In either case, do not create a reference for a -- type obtained through a limited_with clause, because this would -- introduce semantic dependencies. + -- Similarly, do not create a reference if the designated type is a + -- generic formal, because no use of it will reach the backend. elsif Nkind (Related_Nod) = N_Function_Specification and then not From_With_Type (Desig_Type) + and then not Is_Generic_Type (Desig_Type) then if Present (Enclosing_Prot_Type) then Build_Itype_Reference (Anon_Type, Parent (Enclosing_Prot_Type)); |