summaryrefslogtreecommitdiff
path: root/gcc/ada/expander.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-19 14:42:55 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-19 14:42:55 +0000
commitb9b03799fa559d095373088ebbda65a51bd8fbc2 (patch)
treedb05e0d932e454a1ab80237bc41440687641aed3 /gcc/ada/expander.adb
parent9698629c615b86f72ec800c3e33a1672bebd549d (diff)
downloadgcc-b9b03799fa559d095373088ebbda65a51bd8fbc2.tar.gz
2014-02-19 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that applies to a subprogram body, the name is the current scope, rather than being declared in the current scope. (Analyze_Pragma, case No_Return): Handle properly a No_Return aspect applied to a subprogram body. 2014-02-19 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution of overloaded subprograms, and fix bug in handling of primitive operation Element. 2014-02-19 Pascal Obry <obry@adacore.com> * s-os_lib.adb: Minor reformatting. 2014-02-19 Yannick Moy <moy@adacore.com> * expander.adb (Expand): Do nothing inside generics. * sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside generics. 2014-02-19 Yannick Moy <moy@adacore.com> * exp_ch2.adb: Remove useless 'with' of unit Uintp. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207901 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/expander.adb')
-rw-r--r--gcc/ada/expander.adb7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/expander.adb b/gcc/ada/expander.adb
index 9f57cda26a8..65e8a675b36 100644
--- a/gcc/ada/expander.adb
+++ b/gcc/ada/expander.adb
@@ -90,7 +90,8 @@ package body Expander is
-- analysis, in which case Full_Analysis = True or a pre-analysis in
-- which case Full_Analysis = False. See the spec of Sem for more info
-- on this. Additionally, the GNATprove_Mode flag indicates that a light
- -- expansion for formal verification should be used.
+ -- expansion for formal verification should be used. This expansion is
+ -- never done inside generics.
-- The second reason for the Expander_Active flag to be False is that
-- we are performing a pre-analysis. During pre-analysis all expansion
@@ -108,7 +109,9 @@ package body Expander is
-- given that the expansion actions that would normally process it will
-- not take place. This prevents cascaded errors due to stack mismatch.
- if not (Expander_Active or (Full_Analysis and GNATprove_Mode)) then
+ if not Expander_Active
+ and (Inside_A_Generic or not Full_Analysis or not GNATprove_Mode)
+ then
Set_Analyzed (N, Full_Analysis);
if Serious_Errors_Detected > 0 and then Scope_Is_Transient then