public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member
@ 2024-04-15 15:33 luigighiron at gmail dot com
  2024-04-16  7:30 ` [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23) rguenth at gcc dot gnu.org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: luigighiron at gmail dot com @ 2024-04-15 15:33 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 114723
           Summary: ICE when checking for type compatibility with
                    structure that contains flexible array member
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: luigighiron at gmail dot com
  Target Milestone: ---

The following code causes an internal compiler error on GCC 14:

#include<stdio.h>
struct S{int x,y[1];}*a;
int main(void){
        struct S{int x,y[];};
        puts(_Generic(
                a,
                struct S*:"compatible",
                default:"incompatible"
        ));
}

If I understand the type compatibility rules, these types should be compatible?
The types "int[1]" and "int[]" are compatible and everything else seems to
match exactly. Interestingly, it seems to also crash when checking if the type
of a is compatible with struct S (instead of struct S*).

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

* [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23)
  2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
@ 2024-04-16  7:30 ` rguenth at gcc dot gnu.org
  2024-04-16 17:18 ` luigighiron at gmail dot com
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2024-04-16  7:30 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
This seems to be fixed recently?

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

* [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23)
  2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
  2024-04-16  7:30 ` [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23) rguenth at gcc dot gnu.org
@ 2024-04-16 17:18 ` luigighiron at gmail dot com
  2024-04-24  2:10 ` luigighiron at gmail dot com
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: luigighiron at gmail dot com @ 2024-04-16 17:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Halalaluyafail3 <luigighiron at gmail dot com> ---
(In reply to Richard Biener from comment #1)
> This seems to be fixed recently?

I just tested the code on godbolt again, and it doesn't seem to generate an ICE
anymore. However, it does seem to generate "incompatible" which seems to be
incorrect unless there is something that I missed in the standard which would
make these types incompatible.

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

* [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23)
  2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
  2024-04-16  7:30 ` [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23) rguenth at gcc dot gnu.org
  2024-04-16 17:18 ` luigighiron at gmail dot com
@ 2024-04-24  2:10 ` luigighiron at gmail dot com
  2024-04-24  2:21 ` pinskia at gcc dot gnu.org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: luigighiron at gmail dot com @ 2024-04-24  2:10 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Halalaluyafail3 <luigighiron at gmail dot com> ---
Just tested on godbolt again and it cause an ICE, so perhaps something was
changed to cause an ICE again. Also upon thinking about the implications of
these types being compatible they probably shouldn't be compatible and it's
either a defect in the standard or I missed something that would make these
types incompatible.

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

* [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23)
  2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
                   ` (2 preceding siblings ...)
  2024-04-24  2:10 ` luigighiron at gmail dot com
@ 2024-04-24  2:21 ` pinskia at gcc dot gnu.org
  2024-04-24  2:22 ` pinskia at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-24  2:21 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Halalaluyafail3 from comment #3)
> Just tested on godbolt again 

Oh this is with `-g -std=c23`, godbolt has an implicit -g.

Anyways here is the ICE:
<source>: In function 'main':
<source>:11:1: error: 'TYPE_CANONICAL' is not compatible
   11 | }
      | ^

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

* [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23)
  2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
                   ` (3 preceding siblings ...)
  2024-04-24  2:21 ` pinskia at gcc dot gnu.org
@ 2024-04-24  2:22 ` pinskia at gcc dot gnu.org
  2024-04-24  3:01 ` luigighiron at gmail dot com
  2024-04-24  3:04 ` pinskia at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-24  2:22 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Depends on|                            |114014

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Which I am almost positive this is a dup of bug 114014 .


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114014
[Bug 114014] ICE: 'verify_type' failed: 'TYPE_CANONICAL' is not compatible with
-g on gcc.dg/gnu23-tag-1.c

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

* [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23)
  2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
                   ` (4 preceding siblings ...)
  2024-04-24  2:22 ` pinskia at gcc dot gnu.org
@ 2024-04-24  3:01 ` luigighiron at gmail dot com
  2024-04-24  3:04 ` pinskia at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: luigighiron at gmail dot com @ 2024-04-24  3:01 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Halalaluyafail3 <luigighiron at gmail dot com> ---
(In reply to Andrew Pinski from comment #4)
> Oh this is with `-g -std=c23`, godbolt has an implicit -g.

I was not aware of this, thanks for letting me know. Do you know of any way to
disable it? Also it does seem to be quite related, so it is probably the same
bug which caused an ICE here (though the context of that test case would
require the types be the same so it's a little bit different).

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

* [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23)
  2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
                   ` (5 preceding siblings ...)
  2024-04-24  3:01 ` luigighiron at gmail dot com
@ 2024-04-24  3:04 ` pinskia at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-24  3:04 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Halalaluyafail3 from comment #6)
> (In reply to Andrew Pinski from comment #4)
> > Oh this is with `-g -std=c23`, godbolt has an implicit -g.
> 
> I was not aware of this, thanks for letting me know. Do you know of any way
> to disable it? Also it does seem to be quite related, so it is probably the
> same bug which caused an ICE here (though the context of that test case
> would require the types be the same so it's a little bit different).

To disable -g, you can add `-g0` .

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

end of thread, other threads:[~2024-04-24  3:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-15 15:33 [Bug c/114723] New: ICE when checking for type compatibility with structure that contains flexible array member luigighiron at gmail dot com
2024-04-16  7:30 ` [Bug c/114723] ICE when checking for type compatibility with structure that contains flexible array member (C23) rguenth at gcc dot gnu.org
2024-04-16 17:18 ` luigighiron at gmail dot com
2024-04-24  2:10 ` luigighiron at gmail dot com
2024-04-24  2:21 ` pinskia at gcc dot gnu.org
2024-04-24  2:22 ` pinskia at gcc dot gnu.org
2024-04-24  3:01 ` luigighiron at gmail dot com
2024-04-24  3:04 ` pinskia 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).