diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-11-04 15:09:05 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-11-04 15:09:05 +0100 |
commit | 1adaea169e06627aa8482d1afebf178a3ca67edf (patch) | |
tree | 9a92388832fcd63df076879c26d8b5b64096e21f /gcc/ada/sem_ch6.adb | |
parent | 4c9fe6c7494e31402c1c3ae4565aa03f70144258 (diff) | |
download | gcc-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.adb | 11 |
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)) |