summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_attr.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-17 09:24:31 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-17 09:24:31 +0000
commit723bd33267a8f139333ce119effb718ca5d30c89 (patch)
tree3f29dc65f74494cef564daa36014a76c44be4d21 /gcc/ada/sem_attr.adb
parent2588dbe80b53154a8a7d68eb4cbda531ab36e1f4 (diff)
downloadgcc-723bd33267a8f139333ce119effb718ca5d30c89.tar.gz
2009-04-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Add documentation about No_Streams restriction * sem_attr.adb (Check_Stream_Attribute): Exclude implicit stream attributes when checking No_Streams restriction. 2009-04-17 Thomas Quinot <quinot@adacore.com> * rtsfind.ads (RE_Request_Destroy): New PolyORB s-parint entity. * exp_dist.adb (PolyORB_Support.Build_General_Calling_Stubs): Add missing calls to RE_Request_Destroy to deallocate request objects after use. 2009-04-17 Nicolas Setton <setton@adacore.com> * link.c: Fix support for passing a response file under Darwin. 2009-04-17 Emmanuel Briot <briot@adacore.com> * prj.adb (Free): new subprogram. 2009-04-17 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: additional initialization on incomplete subtypes. * sem_ch6.adb (Process_Formals): if the subprogram is in the private part and one of the formals is an incomplete tagged type, attach to list of private dependends of the type for later validation. * sem_ch7.adb (Uninstall_Declarations): diagnose attempts to declare primitive operations of a Taft-amendmment type. * freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete type. The check is performed on package exit, possibly after the subprogram is frozen. 2009-04-17 Vincent Celier <celier@adacore.com> * prj-nmsc.adb (Get_Directories): Get the object and exec directory before looking for source directories, but make sure that there are nil if they are not explicitely declared and there is explicitely no sources in the project. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146227 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_attr.adb')
-rw-r--r--gcc/ada/sem_attr.adb13
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index c043c4fd89e..38f45a85059 100644
--- a/gcc/ada/sem_attr.adb
+++ b/gcc/ada/sem_attr.adb
@@ -1557,7 +1557,17 @@ package body Sem_Attr is
-- Check restriction violations
- Check_Restriction (No_Streams, P);
+ -- First check the No_Streams restriction, which prohibits the use
+ -- of explicit stream attributes in the source program. We do not
+ -- prevent the occurrence of stream attributes in generated code,
+ -- for instance those generated implicitly for dispatching purposes.
+
+ if Comes_From_Source (N) then
+ Check_Restriction (No_Streams, P);
+ end if;
+
+ -- Check special case of Exception_Id and Exception_Occurrence which
+ -- are not allowed for restriction No_Exception_Regstriation.
if Is_RTE (P_Type, RE_Exception_Id)
or else
@@ -2061,6 +2071,7 @@ package body Sem_Attr is
Rewrite (N,
Make_Raise_Program_Error (Loc,
Reason => PE_Address_Of_Intrinsic));
+
else
Error_Msg_N
("cannot take Address of intrinsic subprogram", N);