[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 11 Apr 2013 10:45:11 +0000 (12:45 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 11 Apr 2013 10:45:11 +0000 (12:45 +0200)
commitfc142f6327838046dd9d363de53fad60771304e2
treea14bcd806f8dac2b6a1d64d38ad4c14ed7f2547b
parent2602b64e3a4072c8819cad2f3abffe2d5ae69de3
[multiple changes]

2013-04-11  Robert Dewar  <dewar@adacore.com>

* atree.h: Add declarations for Flag255-Flag289 Fix declaration
of Field30 (was wrong, but no effect, since not yet referenced by
back end) Add declarations for Field31-Field35 Add declarations
for Node31-Node35.
* einfo.ads, einfo.adb (Has_Invariants): No longer applies to
procedures.
(Has_Predicates): No longer applies to functions.
(Is_Predicate_Function): New flag.
(Is_Predicate_Function_M): New flag.
(Is_Invariant_Procedure): New flag.
(Predicate_Function_M): New function.
(Set_Predicate_Function_M): New procedure.
* exp_ch11.adb (Expand_N_Raise_Expression): Take care of special
case of appearing in predicate used for membership test.
* exp_ch3.adb (Insert_Component_Invariant_Checks): Set
Is_Invariant_Procedure flag.
* exp_ch4.adb (Expand_Op_In): Call special predicate function
that takes care of raise_expression nodes in the predicate.
* exp_util.ads, exp_util.adb (Make_Predicate_Call): Add argument Mem for
membership case.
* sem_ch13.adb (Build_Predicate_Functions): New name for
Build_Predicate_Function.  Major rewrite to take care of raise
expression in predicate for membership tests.
* sem_res.adb (Resolve_Actuals): Include both predicate functions
in defense against infinite predicate function loops.
* sinfo.ads, sinfo.adb (Convert_To_Return_False): New flag.

2013-04-11  Robert Dewar  <dewar@adacore.com>

* sem_prag.adb: Minor reformatting.

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

* lib-xref.adb: Generate reference for component of anonymous
access type.

From-SVN: r197766
15 files changed:
gcc/ada/ChangeLog
gcc/ada/atree.h
gcc/ada/einfo.adb
gcc/ada/einfo.ads
gcc/ada/exp_ch11.adb
gcc/ada/exp_ch3.adb
gcc/ada/exp_ch4.adb
gcc/ada/exp_util.adb
gcc/ada/exp_util.ads
gcc/ada/lib-xref.adb
gcc/ada/sem_ch13.adb
gcc/ada/sem_prag.adb
gcc/ada/sem_res.adb
gcc/ada/sinfo.adb
gcc/ada/sinfo.ads