]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 10 Oct 2013 10:50:15 +0000 (12:50 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 10 Oct 2013 10:50:15 +0000 (12:50 +0200)
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

gcc/ada/ChangeLog
gcc/ada/gnat_ugn.texi
gcc/ada/sem_ch4.adb

index 6f24bc6518d2982f9d456d8a41210c178fc1cc8d..cd6a678cb39b24164cfe01255590bbee658478c8 100644 (file)
@@ -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.
index 40ffc35dacdaa330b1e5ff75540c578aca809489..eebd799ad762f37c13da34c0f889a319e50e6fd7 100644 (file)
@@ -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
index c4247cd403dce6fa6c2d8ffae58e94a462cdb9d1..9fcd6acbdfca46849aa507cfa7689b226017d302 100644 (file)
@@ -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;