+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
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;
-- 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
-- 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));