[multiple changes]
2014-01-29 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code that checks if an interface types defines the predefined "=" function because the compiler was erroneously not generating the predefined "=" primitive as soon as the name of some interface primitive is "=" (formals were not checked). 2014-01-29 Ed Schonberg <schonberg@adacore.com> * expander.adb (Expander): In GNATprove mode, do not process transient scopes: they are in general not created in this mode, and an attempt to examine them will lead to constraint errors when processing configuration pragmas that have analyzable expressions. From-SVN: r207256
This commit is contained in:
parent
35d4d8995a
commit
b7cb4a617f
3 changed files with 29 additions and 0 deletions
|
@ -1,3 +1,18 @@
|
|||
2014-01-29 Javier Miranda <miranda@adacore.com>
|
||||
|
||||
* exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
|
||||
that checks if an interface types defines the predefined "="
|
||||
function because the compiler was erroneously not generating the
|
||||
predefined "=" primitive as soon as the name of some interface
|
||||
primitive is "=" (formals were not checked).
|
||||
|
||||
2014-01-29 Ed Schonberg <schonberg@adacore.com>
|
||||
|
||||
* expander.adb (Expander): In GNATprove mode, do not process
|
||||
transient scopes: they are in general not created in this mode,
|
||||
and an attempt to examine them will lead to constraint errors when
|
||||
processing configuration pragmas that have analyzable expressions.
|
||||
|
||||
2014-01-29 Vincent Celier <celier@adacore.com>
|
||||
|
||||
* clean.adb (Gnatclean): Fail if main project is an aggregate
|
||||
|
|
|
@ -9642,6 +9642,15 @@ package body Exp_Ch3 is
|
|||
while Present (Prim) loop
|
||||
if Chars (Node (Prim)) = Name_Op_Eq
|
||||
and then not Is_Internal (Node (Prim))
|
||||
and then Present (First_Entity (Node (Prim)))
|
||||
|
||||
-- Following tests need a comment ???
|
||||
|
||||
and then Present (Last_Entity (Node (Prim)))
|
||||
and then Next_Entity (First_Entity (Node (Prim)))
|
||||
= Last_Entity (Node (Prim))
|
||||
and then Etype (First_Entity (Node (Prim))) = Tag_Typ
|
||||
and then Etype (Last_Entity (Node (Prim))) = Tag_Typ
|
||||
then
|
||||
Eq_Needed := False;
|
||||
Eq_Name := No_Name;
|
||||
|
|
|
@ -129,9 +129,14 @@ package body Expander is
|
|||
-- In GNATprove mode we only need a very limited subset of
|
||||
-- the usual expansions. This limited subset is implemented
|
||||
-- in Expand_SPARK.
|
||||
-- Regular expansion is followed by special handling for transient
|
||||
-- scopes for unconstrained results, etc. but this is not needed,
|
||||
-- and in general cannot be done correctly, in this mode.
|
||||
|
||||
if GNATprove_Mode then
|
||||
Expand_SPARK (N);
|
||||
Set_Analyzed (N);
|
||||
return;
|
||||
|
||||
-- Here for normal non-SPARK mode
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue