diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-07-16 16:47:48 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-07-16 16:47:48 +0200 |
commit | 2ffcbaa5969ea7f6ae55877df1b859f1369fdc2b (patch) | |
tree | 986540adb019104d65f347f7c6f5f44ec53d2c94 /gcc/ada/exp_ch13.adb | |
parent | 76241f8f2445434f7e9430d9bb4ccb97f253f96e (diff) | |
download | gcc-2ffcbaa5969ea7f6ae55877df1b859f1369fdc2b.zip gcc-2ffcbaa5969ea7f6ae55877df1b859f1369fdc2b.tar.gz gcc-2ffcbaa5969ea7f6ae55877df1b859f1369fdc2b.tar.bz2 |
[multiple changes]
2014-07-16 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Find_Type_Name): Diagnose properly
a private extension completion that is an interface definition
with an interface list.
2014-07-16 Arnaud Charlet <charlet@adacore.com>
* gnatls.adb (Gnatls): Code clean ups.
2014-07-16 Thomas Quinot <quinot@adacore.com>
* sinfo.ads, sinfo.adb (N_Compound_Statement): New node kind.
* sem.adb (Analyze): Handle N_Compound_Statement.
* sprint.adb (Sprint_Node_Actual): Ditto.
* sem_ch5.ads, sem_ch5.adb (Analyze_Compound_Statement): New
procedure to handle N_Compound_Statement.
* exp_aggr.adb (Collect_Initialization_Statements):
Use a proper compound statement node, instead of a bogus
expression-with-actions with a NULL statement as its expression,
to wrap collected initialization statements.
* freeze.ads, freeze.adb
(Explode_Initialization_Compound_Statement): New public procedure,
lifted from Freeze_Entity.
(Freeze_Entity): When freezing
an object with captured initialization statements and without
delayed freezing, explode compount statement.
* sem_ch4.adb (Analyze_Expression_With_Actions): Remove special
case that used to handle bogus EWAs with NULL statement as
the expression.
* exp_ch13.adb (Expand_N_Freeze_Entity): For an object with
delayed freezing and captured initialization statements, explode
compound statement.
From-SVN: r212662
Diffstat (limited to 'gcc/ada/exp_ch13.adb')
-rw-r--r-- | gcc/ada/exp_ch13.adb | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ada/exp_ch13.adb b/gcc/ada/exp_ch13.adb index c871327..9500a56 100644 --- a/gcc/ada/exp_ch13.adb +++ b/gcc/ada/exp_ch13.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2013, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -31,6 +31,7 @@ with Exp_Ch6; use Exp_Ch6; with Exp_Imgv; use Exp_Imgv; with Exp_Tss; use Exp_Tss; with Exp_Util; use Exp_Util; +with Freeze; use Freeze; with Namet; use Namet; with Nlists; use Nlists; with Nmake; use Nmake; @@ -410,10 +411,18 @@ package body Exp_Ch13 is end; end if; - -- Processing for objects with address clauses + -- Processing for objects + + if Is_Object (E) then + if Present (Address_Clause (E)) then + Apply_Address_Clause_Check (E, N); + end if; + + -- If initialization statements have been captured in a compound + -- statement, insert them back into the tree now. + + Explode_Initialization_Compound_Statement (E); - if Is_Object (E) and then Present (Address_Clause (E)) then - Apply_Address_Clause_Check (E, N); return; -- Only other items requiring any front end action are types and |