public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
@ 2020-03-09 10:55 asolokha at gmx dot com
  2020-03-09 12:32 ` [Bug middle-end/94098] " marxin at gcc dot gnu.org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: asolokha at gmx dot com @ 2020-03-09 10:55 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 94098
           Summary: [10 Regression] ICE: canonical types differ for
                    identical types 'int(void*, void*)' and 'int(void*,
                    void*)'
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

PR92721 strikes back.

g++-10.0.1-alpha20200308 snapshot (g:9de42a8e995451cb13dceb3970ae23ff88240bff)
ICEs when compiling the following testcase reduced from
gcc/testsuite/gcc.dg/attr-access-read-write-2.c:

int rdwr1_rdwr1 (void*, void*);
int __attribute__ ((access (read_write, 1))) rdwr1_rdwr1 (void*, void*);
int __attribute__ ((access (read_write, 2))) rdwr1_rdwr1 (void*, void*);

% g++-10.0.1 -w -c drii2dyo.cc
drii2dyo.cc:3:71: internal compiler error: canonical types differ for identical
types 'int(void*, void*)' and 'int(void*, void*)'
    3 | int __attribute__ ((access (read_write, 2))) rdwr1_rdwr1 (void*,
void*);
      |                                                                       ^
0xa63b0b comptypes(tree_node*, tree_node*, int)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/typeck.c:1519
0x8f21d8 duplicate_decls(tree_node*, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/decl.c:2308
0x972360 do_pushdecl
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/name-lookup.c:3044
0x9751b2 pushdecl(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/name-lookup.c:3173
0x9751b2 maybe_push_decl(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/name-lookup.c:3204
0x907331 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/decl.c:5377
0x9b5f81 cp_parser_init_declarator
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/parser.c:20703
0x996d46 cp_parser_simple_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/parser.c:13689
0x9c1002 cp_parser_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/parser.c:13388
0x9c179f cp_parser_translation_unit
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/parser.c:4731
0x9c179f c_parse_file()
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/cp/parser.c:43760
0xad99db c_common_parse_file()
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/c-family/c-opts.c:1186

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

* [Bug middle-end/94098] [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
  2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
@ 2020-03-09 12:32 ` marxin at gcc dot gnu.org
  2020-03-09 12:32 ` marxin at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-03-09 12:32 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
                 CC|                            |marxin at gcc dot gnu.org,
                   |                            |msebor at gcc dot gnu.org
   Last reconfirmed|                            |2020-03-09

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed, started with r10-4929-g54aa6b58fe2fe73b.

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

* [Bug middle-end/94098] [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
  2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
  2020-03-09 12:32 ` [Bug middle-end/94098] " marxin at gcc dot gnu.org
@ 2020-03-09 12:32 ` marxin at gcc dot gnu.org
  2020-03-10  2:50 ` [Bug c++/94098] " msebor at gcc dot gnu.org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-03-09 12:32 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |10.0
      Known to work|                            |9.2.0
   Target Milestone|---                         |10.0

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

* [Bug c++/94098] [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
  2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
  2020-03-09 12:32 ` [Bug middle-end/94098] " marxin at gcc dot gnu.org
  2020-03-09 12:32 ` marxin at gcc dot gnu.org
@ 2020-03-10  2:50 ` msebor at gcc dot gnu.org
  2020-03-11  3:18 ` mpolacek at gcc dot gnu.org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: msebor at gcc dot gnu.org @ 2020-03-10  2:50 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Sebor <msebor at gcc dot gnu.org> changed:

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

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
Despite fixing at least one bug it looks like the patch for PR92721 didn't
actually eliminate the underlying problem.  The comment above the internal
error suggests that changing the type attributes of a function when applying
attributes to its declaration might need additional changes to "the canonical
type propagation code."  At this point I have no idea wherever that might need
to happen.

            /* The two types are structurally equivalent, but their
               canonical types were different. This is a failure of the
               canonical type propagation code.*/
            internal_error 
              ("canonical types differ for identical types %qT and %qT",
               t1, t2);

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

* [Bug c++/94098] [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
  2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
                   ` (2 preceding siblings ...)
  2020-03-10  2:50 ` [Bug c++/94098] " msebor at gcc dot gnu.org
@ 2020-03-11  3:18 ` mpolacek at gcc dot gnu.org
  2020-03-18 20:56 ` msebor at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2020-03-11  3:18 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
                 CC|                            |mpolacek at gcc dot gnu.org

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

* [Bug c++/94098] [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
  2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
                   ` (3 preceding siblings ...)
  2020-03-11  3:18 ` mpolacek at gcc dot gnu.org
@ 2020-03-18 20:56 ` msebor at gcc dot gnu.org
  2020-03-27 19:55 ` cvs-commit at gcc dot gnu.org
  2020-03-27 19:56 ` msebor at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: msebor at gcc dot gnu.org @ 2020-03-18 20:56 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch

--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
Patch: https://gcc.gnu.org/pipermail/gcc-patches/2020-March/542098.html

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

* [Bug c++/94098] [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
  2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
                   ` (4 preceding siblings ...)
  2020-03-18 20:56 ` msebor at gcc dot gnu.org
@ 2020-03-27 19:55 ` cvs-commit at gcc dot gnu.org
  2020-03-27 19:56 ` msebor at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-03-27 19:55 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Sebor <msebor@gcc.gnu.org>:

https://gcc.gnu.org/g:ccacf77be5508dd5b4df59f402965196d11edb05

commit r10-7426-gccacf77be5508dd5b4df59f402965196d11edb05
Author: Martin Sebor <msebor@redhat.com>
Date:   Fri Mar 27 13:54:22 2020 -0600

    PR c++/94098 - ICE on attribute access redeclaration

    gcc/c-family/ChangeLog:

            PR c++/94098
            * c-attribs.c (handle_access_attribute): Avoid setting
TYPE_ATTRIBUTES
            here.

    gcc/ChangeLog:

            PR c++/94098
            * calls.c (init_attr_rdwr_indices): Iterate over all access
attributes.

    gcc/testsuite/ChangeLog:

            PR c++/94098
            * g++.dg/ext/attr-access-2.C: New test.

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

* [Bug c++/94098] [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)'
  2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
                   ` (5 preceding siblings ...)
  2020-03-27 19:55 ` cvs-commit at gcc dot gnu.org
@ 2020-03-27 19:56 ` msebor at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: msebor at gcc dot gnu.org @ 2020-03-27 19:56 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> ---
Fixed via r10-7426.

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

end of thread, other threads:[~2020-03-27 19:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09 10:55 [Bug middle-end/94098] New: [10 Regression] ICE: canonical types differ for identical types 'int(void*, void*)' and 'int(void*, void*)' asolokha at gmx dot com
2020-03-09 12:32 ` [Bug middle-end/94098] " marxin at gcc dot gnu.org
2020-03-09 12:32 ` marxin at gcc dot gnu.org
2020-03-10  2:50 ` [Bug c++/94098] " msebor at gcc dot gnu.org
2020-03-11  3:18 ` mpolacek at gcc dot gnu.org
2020-03-18 20:56 ` msebor at gcc dot gnu.org
2020-03-27 19:55 ` cvs-commit at gcc dot gnu.org
2020-03-27 19:56 ` msebor 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).