diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-10-10 12:50:15 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-10-10 12:50:15 +0200 |
commit | f0e7963fb90348ae34577e0060dc80d03d71279e (patch) | |
tree | 2762ba4669f6d02e2451003fd04ef8dff4b03d66 /gcc | |
parent | 0c5dba7ff5ca748346488e651641e4b93eb53a17 (diff) | |
download | gcc-f0e7963fb90348ae34577e0060dc80d03d71279e.zip gcc-f0e7963fb90348ae34577e0060dc80d03d71279e.tar.gz gcc-f0e7963fb90348ae34577e0060dc80d03d71279e.tar.bz2 |
[multiple changes]
2013-10-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Selected_Component,
Has_Mode_Conformant_Spec): If selected component may be an
indexing of a parameterless call to a protected function, and
expansion is disabled, this is a valid candidate interpretation.
2013-10-10 Arnaud Charlet <charlet@adacore.com>
* gnat_ugn.texi: Minor editing.
From-SVN: r203345
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/ada/gnat_ugn.texi | 2 | ||||
-rw-r--r-- | gcc/ada/sem_ch4.adb | 19 |
3 files changed, 29 insertions, 3 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6f24bc6..cd6a678 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2013-10-10 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component, + Has_Mode_Conformant_Spec): If selected component may be an + indexing of a parameterless call to a protected function, and + expansion is disabled, this is a valid candidate interpretation. + +2013-10-10 Arnaud Charlet <charlet@adacore.com> + + * gnat_ugn.texi: Minor editing. + 2013-10-10 Robert Dewar <dewar@adacore.com> * gnatlink.adb: Minor reformatting. diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 40ffc35..eebd799 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -241,7 +241,7 @@ By default, @value{EDITION} assumes Ada 2012, but you can override with a compiler switch (@pxref{Compiling Different Versions of Ada}) to explicitly specify the language version. Throughout this manual, references to ``Ada'' without a year suffix -apply to both all Ada 95/2005/2012 versions of the language. +apply to all Ada 95/2005/2012 versions of the language. @ifclear FSFEDITION For ease of exposition, ``@value{EDITION}'' will be referred to simply as diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index c4247cd..9fcd6ac 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -3962,10 +3962,25 @@ package body Sem_Ch4 is Next (Param); end loop; - -- One of the specs has additional formals + -- One of the specs has additional formals, there is no match, + -- unless this may be an indexing of a parameterless call. + + -- Note that when expansion is disabled, the corresponding record + -- type of synchronized types is not constructed, so that there is + -- no point is attempting an interpretation as a prefixed call, as + -- this is bound to fail because the primitive operations will not + -- be properly located. if Present (Comp_Param) or else Present (Param) then - return False; + if Needs_No_Actuals (Comp) + and then Is_Array_Type (Etype (Comp)) + and then not Expander_Active + then + return True; + + else + return False; + end if; end if; return True; |