From ad7d90bc6615e53cfb81966476cd4d0079473822 Mon Sep 17 00:00:00 2001 From: charlet Date: Mon, 13 Jul 2009 10:09:44 +0000 Subject: [PATCH] 2009-07-13 Ed Schonberg * exp_attr.adb (Rewrite_Stream_Proc_Call): When rewriting a stream attribute into a call of the corresponding suprogram, create extra formals for the subprogram, because it may be a renaming whose analysis does not create extra formals. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149564 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 7 +++++++ gcc/ada/exp_attr.adb | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 46f59b8..03680cca 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,10 @@ +2009-07-13 Ed Schonberg + + * exp_attr.adb (Rewrite_Stream_Proc_Call): When rewriting a stream + attribute into a call of the corresponding suprogram, create extra + formals for the subprogram, because it may be a renaming whose + analysis does not create extra formals. + 2009-07-13 Emmanuel Briot * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb, diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb index c225985..2df553c 100644 --- a/gcc/ada/exp_attr.adb +++ b/gcc/ada/exp_attr.adb @@ -593,6 +593,14 @@ package body Exp_Attr is end if; end if; + -- The stream operation to call maybe a renaming created by + -- an attribute definition clause, and may not be frozen yet. + -- Ensure that it has the necessary extra formals. + + if not Is_Frozen (Pname) then + Create_Extra_Formals (Pname); + end if; + -- And now rewrite the call Rewrite (N, -- 2.7.4