diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-09-06 15:07:09 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-09-06 15:07:09 +0200 |
commit | ebb6faaafae68ade1685169e3f23a6870ed63102 (patch) | |
tree | bd2a46378d5d0c491e6e9ed5f4c8e364b95888eb /gcc/ada/sem_ch6.adb | |
parent | 604352863ceed2abf06f77f95184d6e46fc62501 (diff) | |
download | gcc-ebb6faaafae68ade1685169e3f23a6870ed63102.zip gcc-ebb6faaafae68ade1685169e3f23a6870ed63102.tar.gz gcc-ebb6faaafae68ade1685169e3f23a6870ed63102.tar.bz2 |
[multiple changes]
2011-09-06 Jerome Guitton <guitton@adacore.com>
* sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK
on vThreads.
2011-09-06 Thomas Quinot <quinot@adacore.com>
* s-solita.adb: Minor reformatting.
2011-09-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that
is a rewriting of an expression function does not freeze previous
entities.
2011-09-06 Robert Dewar <dewar@adacore.com>
* impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case
From-SVN: r178593
Diffstat (limited to 'gcc/ada/sem_ch6.adb')
-rw-r--r-- | gcc/ada/sem_ch6.adb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index d82cd72..10de099 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -2346,7 +2346,12 @@ package body Sem_Ch6 is -- expansion has generated an equivalent type that is used when -- elaborating the body. - if No (Spec_Id) then + -- An exception in the case of Ada2012, AI05-177: The bodies + -- created for expression functions do not freeze. + + if No (Spec_Id) + and then Nkind (Original_Node (N)) /= N_Expression_Function + then Freeze_Before (N, Body_Id); elsif Nkind (Parent (N)) = N_Compilation_Unit then |