summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_attr.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-23 12:44:34 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-06-23 12:44:34 +0000
commitd73d4db07b0f68ca63161a49deb911ff89d9cdcc (patch)
tree1ce6fa5db63816fd6ff6b576aff227f6b37f6c4e /gcc/ada/exp_attr.adb
parent090ce0bc1838e28b5ab5b195dca8871dec41d047 (diff)
downloadgcc-d73d4db07b0f68ca63161a49deb911ff89d9cdcc.tar.gz
2010-06-23 Thomas Quinot <quinot@adacore.com>
* exp_attr.adb (Expand_Access_To_Protected_Op): When rewriting a reference to a protected subprogram outside of the protected's scope, ensure the corresponding external subprogram is frozen before the reference. 2010-06-23 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb: Fix typo in error message. * sem.adb: Refine previous change. 2010-06-23 Robert Dewar <dewar@adacore.com> * impunit.adb, a-suewen.adb, a-suewen.ads, a-suenco.adb, a-suenco.ads, a-suezen.adb, a-suezen.ads, a-stuten.adb, a-stuten.ads, Makefile.rtl: Implement Ada 2012 string encoding packages. 2010-06-23 Arnaud Charlet <charlet@adacore.com> * a-stwiun-shared.adb, a-stwiun-shared.ads, a-stzunb-shared.adb, a-stzunb-shared.ads, a-swunau-shared.adb, a-swuwti-shared.adb, a-szunau-shared.adb, a-szuzti-shared.adb: New files. * gcc-interface/Makefile.in: Enable use of above files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161277 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_attr.adb')
-rw-r--r--gcc/ada/exp_attr.adb11
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb
index 48420c0d68a..5126e5a1730 100644
--- a/gcc/ada/exp_attr.adb
+++ b/gcc/ada/exp_attr.adb
@@ -280,16 +280,14 @@ package body Exp_Attr is
-- Start of processing for Expand_Access_To_Protected_Op
begin
- -- Within the body of the protected type, the prefix
- -- designates a local operation, and the object is the first
- -- parameter of the corresponding protected body of the
- -- current enclosing operation.
+ -- Within the body of the protected type, the prefix designates a local
+ -- operation, and the object is the first parameter of the corresponding
+ -- protected body of the current enclosing operation.
if Is_Entity_Name (Pref) then
if May_Be_External_Call then
Sub :=
- New_Occurrence_Of
- (External_Subprogram (Entity (Pref)), Loc);
+ New_Occurrence_Of (External_Subprogram (Entity (Pref)), Loc);
else
Sub :=
New_Occurrence_Of
@@ -372,6 +370,7 @@ package body Exp_Attr is
Make_Aggregate (Loc,
Expressions => New_List (Obj_Ref, Sub_Ref));
+ Freeze_Before (N, Entity (Sub));
Rewrite (N, Agg);
Analyze_And_Resolve (N, E_T);