aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch6.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-11-04 15:09:05 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2011-11-04 15:09:05 +0100
commit1adaea169e06627aa8482d1afebf178a3ca67edf (patch)
tree9a92388832fcd63df076879c26d8b5b64096e21f /gcc/ada/sem_ch6.adb
parent4c9fe6c7494e31402c1c3ae4565aa03f70144258 (diff)
downloadgcc-1adaea169e06627aa8482d1afebf178a3ca67edf.zip
gcc-1adaea169e06627aa8482d1afebf178a3ca67edf.tar.gz
gcc-1adaea169e06627aa8482d1afebf178a3ca67edf.tar.bz2
[multiple changes]
2011-11-04 Robert Dewar <dewar@adacore.com> * sprint.adb (Sprint_Node_Actual, case Qualified_Expression): Avoid junk semicolon after argument of machine code Asm operand. 2011-11-04 Robert Dewar <dewar@adacore.com> * exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in CodePeer mode or if restriction No_Exception_Handlers is present. * exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop nodes in CodePeer mode or if restriction No_Exception_Handlers is present. 2011-11-04 Robert Dewar <dewar@adacore.com> * s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting. 2011-11-04 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Specification): The specification is legal if it is a function that returns an abstract type, if it comes from an attribute renaming of a stream attribute of an abstract type. 2011-11-04 Gary Dismukes <dismukes@adacore.com> * exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed components, check whether recursively check whether the prefix denotes an unaligned object. 2011-11-04 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Debug): The argument of the pragma is legal if it is an expanded name that denotes a procedure that be can called without parameters. 2011-11-04 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi (Performance Considerations) <Vectorization of loops>: New sub-section. <Other Optimization Switches>: Minor tweak. From-SVN: r180955
Diffstat (limited to 'gcc/ada/sem_ch6.adb')
-rw-r--r--gcc/ada/sem_ch6.adb11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index 3dbf782..5d30faa4 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -3415,14 +3415,17 @@ package body Sem_Ch6 is
-- Ada 2005 (AI-251): If the return type is abstract, verify that
-- the subprogram is abstract also. This does not apply to renaming
- -- declarations, where abstractness is inherited.
+ -- declarations, where abstractness is inherited, and to subprogram
+ -- bodies generated for stream operations, which become renamings as
+ -- bodies.
-- In case of primitives associated with abstract interface types
-- the check is applied later (see Analyze_Subprogram_Declaration).
- if not Nkind_In (Parent (N), N_Subprogram_Renaming_Declaration,
- N_Abstract_Subprogram_Declaration,
- N_Formal_Abstract_Subprogram_Declaration)
+ if not Nkind_In (Original_Node (Parent (N)),
+ N_Subprogram_Renaming_Declaration,
+ N_Abstract_Subprogram_Declaration,
+ N_Formal_Abstract_Subprogram_Declaration)
then
if Is_Abstract_Type (Etype (Designator))
and then not Is_Interface (Etype (Designator))