[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Tue, 25 Apr 2017 09:22:43 +0000 (11:22 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 25 Apr 2017 09:22:43 +0000 (11:22 +0200)
commitd1eb8a82b2851aba9cc35cc698be7dbf4f80ec9a
treeee06f578fdeb57e95b0f30957eee580d9a2cb477
parent820f11620e17579c411c3eb31d73a772a2174f85
[multiple changes]

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

* a-cfinve.ads, a-cofove.ads (Empty_Vector): add Global contract.

2017-04-25  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb (Analyze_Declarations): Minor
correction to comments, move out large conditional and scope
traversal into a predicate.
(Uses_Unseen_Lib_Unit_Priv): Predicate function made from extracted
logic.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Selected_Component): Refine analysis
of prefix whose type is a current instance of a synchronized
type. If the prefix is an object this is an external call (or
requeue) that can only access public operations of the object. The
previous predicate was too restrictive, and did not allow public
protected operations, only task entries.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch5.adb, fname.adb: Minor reformatting.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Is_Anonymous_Access_Type): New routine.
* einfo.ads Update the placement of
E_Anonymous_Access_Subprogram_Type along with all subtypes that
mention the ekind.
(Is_Anonymous_Access_Type): New routine.
* exp_ch7.adb (Allows_Finalization_Master): Do not generate a
master for an access type subject to pragma No_Heap_Finalization.
* exp_util.adb (Build_Allocate_Deallocate_Proc): An object being
allocated or deallocated does not finalization actions if the
associated access type is subject to pragma No_Heap_Finalization.
* opt.ads Add new global variable No_Heap_Finalization_Pragma.
* par-prag.adb Pragma No_Heap_Finalization does not need special
processing from the parser.
* sem_ch6.adb (Check_Return_Subtype_Indication): Remove ancient
??? comments. Use the new predicate Is_Anonymous_Access_Type.
* sem_prag.adb Add an entry in table Sig_Flags for pragma
No_Heap_Finalization.
(Analyze_Pragma): Add processing for
pragma No_Heap_Finalization. Update various error messages to
use Duplication_Error.
* sem_util.ads, sem_util.adb (No_Heap_Finalization): New routine.
* snames.ads-tmpl: Add new predefined name No_Heap_Finalization
and corresponding pragma id.

From-SVN: r247156
18 files changed:
gcc/ada/ChangeLog
gcc/ada/a-cfinve.ads
gcc/ada/a-cofove.ads
gcc/ada/einfo.adb
gcc/ada/einfo.ads
gcc/ada/exp_ch7.adb
gcc/ada/exp_util.adb
gcc/ada/fname.adb
gcc/ada/opt.ads
gcc/ada/par-prag.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch4.adb
gcc/ada/sem_ch5.adb
gcc/ada/sem_ch6.adb
gcc/ada/sem_prag.adb
gcc/ada/sem_util.adb
gcc/ada/sem_util.ads
gcc/ada/snames.ads-tmpl