public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ada/99360] New: ICE in generalized iteration
@ 2021-03-03 11:55 simon at pushface dot org
  2021-03-04  9:04 ` [Bug ada/99360] [11 regression] " ebotcazou at gcc dot gnu.org
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: simon at pushface dot org @ 2021-03-03 11:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

            Bug ID: 99360
           Summary: ICE in generalized iteration
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ada
          Assignee: unassigned at gcc dot gnu.org
          Reporter: simon at pushface dot org
  Target Milestone: ---

Created attachment 50292
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50292&action=edit
Reproducer

This is a regression from GCC 10.

It arises when compiling a generalized iteration (in the case of the
bug box below, 'for Cursor in V.Iterate loop', also for existential &
universal quantifiers) against an independently-developed arm-eabi
RTS[1]. It does *not* happen against f.e. ravenscar-full-stm32f4.

This is the result of compiling with the native compiler against the
set of files reported by the arm-eabi compiler (attached):

$ gnatmake -c -u -f iteration.adb
gcc -c iteration.adb
+===========================GNAT BUG DETECTED==============================+
| 11.0.0 20210205 (experimental) (x86_64-apple-darwin15) Program_Error
sem_ch8.adb:5490 explicit raise|
| Error detected at iteration.adb:13:8                                     |
| Please submit a bug report; see https://gcc.gnu.org/bugs/ .              |
| Use a subject line meaningful to you and us to track the bug.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact command that you entered.                              |
| Also include sources listed below.                                       |
+==========================================================================+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

system.ads
iteration.adb
ada.ads
a-contai.ads
a-cobove.ads
a-iteint.ads
a-stream.ads
a-tags.ads
s-stoele.ads
s-secsta.ads
s-parame.ads
s-taskin.ads
s-freert.ads
interfac.ads
s-fretas.ads
s-stratt.ads
s-unstyp.ads

What investigation I've been able to do suggests that it's possibly
related to tasking and/or finalization being brought in when not
needed (it used not to be with GCC 10).

Emmanuel B. (ex-AdaCore) said in [2]:

   Might be unrelated, but: we have noticed recently that a
   generalized iteration ("for..of") was wrongly calling
   `activate_task`. In particular, this resulted in errors when
   executing such loops from a protected object and enabling the
   checks that no potentially blocking operation is executed in such
   contexts.

   We reported this to AdaCore who fixed it in their more recent
   wavefronts. I am not sure when the error started to occur though,
   so maybe not that helpful to you :-)

----

[1] https://github.com/simonjwright/cortex-gnat-rts
[2] https://groups.google.com/g/comp.lang.ada/c/c5qncqgkgYk/m/Cp-mty5wAgAJ

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [11 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
@ 2021-03-04  9:04 ` ebotcazou at gcc dot gnu.org
  2021-03-04  9:19 ` ebotcazou at gcc dot gnu.org
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-03-04  9:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |11.0
                 CC|                            |ebotcazou at gcc dot gnu.org
   Last reconfirmed|                            |2021-03-04
             Status|UNCONFIRMED                 |NEW
            Summary|ICE in generalized          |[11 regression] ICE in
                   |iteration                   |generalized iteration
     Ever confirmed|0                           |1

--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
I can reproduce.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [11 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
  2021-03-04  9:04 ` [Bug ada/99360] [11 regression] " ebotcazou at gcc dot gnu.org
@ 2021-03-04  9:19 ` ebotcazou at gcc dot gnu.org
  2021-03-04  9:27 ` ebotcazou at gcc dot gnu.org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-03-04  9:19 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Created attachment 50297
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50297&action=edit
Stopgap fix

To be applied on the 11 branch only.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [11 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
  2021-03-04  9:04 ` [Bug ada/99360] [11 regression] " ebotcazou at gcc dot gnu.org
  2021-03-04  9:19 ` ebotcazou at gcc dot gnu.org
@ 2021-03-04  9:27 ` ebotcazou at gcc dot gnu.org
  2021-03-04 22:37 ` simon at pushface dot org
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-03-04  9:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |ebotcazou at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [11 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (2 preceding siblings ...)
  2021-03-04  9:27 ` ebotcazou at gcc dot gnu.org
@ 2021-03-04 22:37 ` simon at pushface dot org
  2021-03-04 22:58 ` ebotcazou at gcc dot gnu.org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: simon at pushface dot org @ 2021-03-04 22:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

--- Comment #3 from simon at pushface dot org ---
(In reply to Eric Botcazou from comment #2)
> Created attachment 50297 [details]
> Stopgap fix
> 
> To be applied on the 11 branch only.

Worked a treat! on both x86_64 (for the code in the reproducer, which of course
then went on to fail because of partial RTS) and for the original arm-eabi
problem, which then executed its test code perfectly.

I thought that maybe this would only work for predefined Containers, which
isn’t true (it’s the Iterators); though I guess that home-grown containers
might trigger the problem? Hopefully they’re rare in the wild.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [11 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (3 preceding siblings ...)
  2021-03-04 22:37 ` simon at pushface dot org
@ 2021-03-04 22:58 ` ebotcazou at gcc dot gnu.org
  2021-04-09  8:29 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-03-04 22:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Worked a treat! on both x86_64 (for the code in the reproducer, which of
> course then went on to fail because of partial RTS) and for the original
> arm-eabi problem, which then executed its test code perfectly.

OK, thanks for trying it.

> I thought that maybe this would only work for predefined Containers, which
> isn’t true (it’s the Iterators); though I guess that home-grown containers
> might trigger the problem? Hopefully they’re rare in the wild.

Yes, certainly not a generic solution, but good enough in the meantime.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [11 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (4 preceding siblings ...)
  2021-03-04 22:58 ` ebotcazou at gcc dot gnu.org
@ 2021-04-09  8:29 ` rguenth at gcc dot gnu.org
  2021-04-21  9:19 ` [Bug ada/99360] [11/12 " cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-09  8:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [11/12 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (5 preceding siblings ...)
  2021-04-09  8:29 ` rguenth at gcc dot gnu.org
@ 2021-04-21  9:19 ` cvs-commit at gcc dot gnu.org
  2021-04-21  9:21 ` [Bug ada/99360] [12 " ebotcazou at gcc dot gnu.org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-04-21  9:19 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Eric Botcazou
<ebotcazou@gcc.gnu.org>:

https://gcc.gnu.org/g:53e85b38aaa10f5f8fe35eeea454a92c293cbc67

commit r11-8271-g53e85b38aaa10f5f8fe35eeea454a92c293cbc67
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Apr 21 11:18:21 2021 +0200

    Add stopgap fix for PR ada/99360

    gcc/ada/
            PR ada/99360
            * exp_ch6.adb (Might_Have_Tasks): Return False when the type is the
            class-wide type of a predefined iterator type.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [12 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (6 preceding siblings ...)
  2021-04-21  9:19 ` [Bug ada/99360] [11/12 " cvs-commit at gcc dot gnu.org
@ 2021-04-21  9:21 ` ebotcazou at gcc dot gnu.org
  2021-04-27 11:40 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2021-04-21  9:21 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |NEW
           Assignee|ebotcazou at gcc dot gnu.org       |unassigned at gcc dot gnu.org
            Summary|[11/12 regression] ICE in   |[12 regression] ICE in
                   |generalized iteration       |generalized iteration

--- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
To be properly fixed on the mainline.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [12 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (7 preceding siblings ...)
  2021-04-21  9:21 ` [Bug ada/99360] [12 " ebotcazou at gcc dot gnu.org
@ 2021-04-27 11:40 ` jakub at gcc dot gnu.org
  2021-07-28  7:06 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-27 11:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.0                        |11.2

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 11.1 has been released, retargeting bugs to GCC 11.2.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [12 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (8 preceding siblings ...)
  2021-04-27 11:40 ` jakub at gcc dot gnu.org
@ 2021-07-28  7:06 ` rguenth at gcc dot gnu.org
  2022-02-12 17:17 ` simon at pushface dot org
  2022-02-12 17:41 ` charlet at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-07-28  7:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.2                        |11.3

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 11.2 is being released, retargeting bugs to GCC 11.3

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [12 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (9 preceding siblings ...)
  2021-07-28  7:06 ` rguenth at gcc dot gnu.org
@ 2022-02-12 17:17 ` simon at pushface dot org
  2022-02-12 17:41 ` charlet at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: simon at pushface dot org @ 2022-02-12 17:17 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

--- Comment #9 from simon at pushface dot org ---
In gcc 12.0.1 of 20220128, we get

$ gnatmake -c -u -f iteration.adb
gcc -c iteration.adb
a-stream.ads:82:04: error: construct not allowed in configurable run-time mode
a-stream.ads:82:04: error: file s-putima.ads had semantic errors
a-stream.ads:82:04: error: entity "System.Put_Images.Put_Image_Unknown" not
available
s-putima.ads:63:53: error: "Long_Long_Long_Unsigned" not declared in
"Unsigned_Types"
gnatmake: "iteration.adb" compilation error

which means we no longer get the ICE. Instead, the compiler complains validly
that the old RTS files provided don’t provide the interfaces that the compiler
now needs.

Similarly for GCC 11.2.

So, I think this PR should be closed as fixed.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug ada/99360] [12 regression] ICE in generalized iteration
  2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
                   ` (10 preceding siblings ...)
  2022-02-12 17:17 ` simon at pushface dot org
@ 2022-02-12 17:41 ` charlet at gcc dot gnu.org
  11 siblings, 0 replies; 13+ messages in thread
From: charlet at gcc dot gnu.org @ 2022-02-12 17:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99360

Arnaud Charlet <charlet at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.3                        |12.0
                 CC|                            |charlet at gcc dot gnu.org
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #10 from Arnaud Charlet <charlet at gcc dot gnu.org> ---
Indeed, closing, thanks!

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2022-02-12 17:41 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-03 11:55 [Bug ada/99360] New: ICE in generalized iteration simon at pushface dot org
2021-03-04  9:04 ` [Bug ada/99360] [11 regression] " ebotcazou at gcc dot gnu.org
2021-03-04  9:19 ` ebotcazou at gcc dot gnu.org
2021-03-04  9:27 ` ebotcazou at gcc dot gnu.org
2021-03-04 22:37 ` simon at pushface dot org
2021-03-04 22:58 ` ebotcazou at gcc dot gnu.org
2021-04-09  8:29 ` rguenth at gcc dot gnu.org
2021-04-21  9:19 ` [Bug ada/99360] [11/12 " cvs-commit at gcc dot gnu.org
2021-04-21  9:21 ` [Bug ada/99360] [12 " ebotcazou at gcc dot gnu.org
2021-04-27 11:40 ` jakub at gcc dot gnu.org
2021-07-28  7:06 ` rguenth at gcc dot gnu.org
2022-02-12 17:17 ` simon at pushface dot org
2022-02-12 17:41 ` charlet at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).