aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-08-17 11:28:48 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-08-17 11:28:48 +0200
commit89c273b45787a36d90bdf91c0eb0f182a7fb960e (patch)
tree03156472b70475e068c50a7528cdfcad587c7b75 /gcc
parentb76e28c64d8a13f0fcaf6bddee53c06115c1d186 (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/ada/comperr.adb16
-rw-r--r--gcc/ada/sem_ch3.adb3
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));