public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "slyfox at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/101219] [12 Regression] ice in perform_or_defer_access_check since r12-1804-g65870e75616ee435
Date: Mon, 19 Jul 2021 21:26:22 +0000	[thread overview]
Message-ID: <bug-101219-4-3CfQPGUNHI@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-101219-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #4 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
Got the same mednafen crash today. Poked slightly at the context in gdb.

>From what I understand the crash happens when analysing statement `void
(PCEFast_PSG::*ch_0)(int, int *);`. There is no access to the any object field
implied by `TYPE_BINFO (access_type)`. Or is there? Should it refer to `class
PCEFast_PSG`?

(gdb) fr 1
#1  0x000000000079ff83 in finish_non_static_data_member (decl=0x7ffff7652a18,
object=0x7ffff7796860, qualifying_scope=0x0) at
/home/slyfox/dev/git/gcc/gcc/cp/semantics.c:2208
2208          perform_or_defer_access_check (TYPE_BINFO (access_type), decl,

(gdb) list
2203         QUALIFYING_SCOPE is also non-null.  */
2204      else
2205        {
2206          volatile tree access_type = TREE_TYPE (object);
2207
2208          perform_or_defer_access_check (TYPE_BINFO (access_type), decl,
2209                                         decl, tf_warning_or_error);
2210
2211          /* If the data member was named `C::M', convert `*this' to `C'
2212             first.  */

(gdb) call print_tree(object)
No symbol "print_tree" in current context.
(gdb) call debug_tree(object)
 <ptrmem_cst 0x7ffff7796860
    type <record_type 0x7ffff77a1bd0 type_2 type_6 TI
        size <integer_cst 0x7ffff7625f18 constant 128>
        unit-size <integer_cst 0x7ffff7625f30 constant 16>
        align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff77a1bd0
        fields <field_decl 0x7ffff7652a18 __pfn type <pointer_type
0x7ffff77a1b28>
            unsigned nonaddressable DI psg.cpp.cpp:5:39
            size <integer_cst 0x7ffff7625ed0 constant 64>
            unit-size <integer_cst 0x7ffff7625ee8 constant 8>
            align:64 warn_if_not_align:0 offset_align 128
            offset <integer_cst 0x7ffff7625f00 constant 0>
            bit-offset <integer_cst 0x7ffff7625f48 constant 0> context
<record_type 0x7ffff77a1bd0> chain <field_decl 0x7ffff7652ab0 __delta>>
        ptrmemfunc fn type <pointer_type 0x7ffff77a1b28 type <method_type
0x7ffff77a17e0>
            public unsigned type_6 DI size <integer_cst 0x7ffff7625ed0 64>
unit-size <integer_cst 0x7ffff7625ee8 8>
            align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff77a1b28>
        chain <type_decl 0x7ffff7652b48 __ptrmemfunc_type>>
    constant>

(gdb) call debug_tree(access_type)
 <record_type 0x7ffff77a1bd0 type_2 type_6 TI
    size <integer_cst 0x7ffff7625f18 type <integer_type 0x7ffff76430a8
bitsizetype> constant 128>
    unit-size <integer_cst 0x7ffff7625f30 type <integer_type 0x7ffff7643000
sizetype> constant 16>
    align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff77a1bd0
    fields <field_decl 0x7ffff7652a18 __pfn
        type <pointer_type 0x7ffff77a1b28 type <method_type 0x7ffff77a17e0>
            public unsigned type_6 DI
            size <integer_cst 0x7ffff7625ed0 constant 64>
            unit-size <integer_cst 0x7ffff7625ee8 constant 8>
            align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff77a1b28>
        unsigned nonaddressable DI psg.cpp.cpp:5:39 size <integer_cst
0x7ffff7625ed0 64> unit-size <integer_cst 0x7ffff7625ee8 8>
        align:64 warn_if_not_align:0 offset_align 128
        offset <integer_cst 0x7ffff7625f00 constant 0>
        bit-offset <integer_cst 0x7ffff7625f48 constant 0> context <record_type
0x7ffff77a1bd0>
        chain <field_decl 0x7ffff7652ab0 __delta type <integer_type
0x7ffff7643738 long int>
            nonaddressable DI psg.cpp.cpp:5:39 size <integer_cst 0x7ffff7625ed0
64> unit-size <integer_cst 0x7ffff7625ee8 8>
            align:64 warn_if_not_align:0 offset_align 128 offset <integer_cst
0x7ffff7625f00 0> bit-offset <integer_cst 0x7ffff7625ed0 64> context
<record_type 0x7ffff77a1bd0>>> ptrmemfunc fn type <pointer_type 0x7ffff77a1b28>
    chain <type_decl 0x7ffff7652b48 __ptrmemfunc_type>>

  parent reply	other threads:[~2021-07-19 21:26 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-26  8:57 [Bug c++/101219] New: ice in perform_or_defer_access_check dcb314 at hotmail dot com
2021-06-26  9:01 ` [Bug c++/101219] " dcb314 at hotmail dot com
2021-06-28  7:25 ` [Bug c++/101219] [12 Regression] ice in perform_or_defer_access_check since r12-1804-g65870e75616ee435 marxin at gcc dot gnu.org
2021-06-28 20:00 ` msebor at gcc dot gnu.org
2021-07-19 21:26 ` slyfox at gcc dot gnu.org [this message]
2021-07-19 21:47 ` slyfox at gcc dot gnu.org
2021-07-20 23:16 ` slyfox at gcc dot gnu.org
2021-07-21  0:06 ` msebor at gcc dot gnu.org
2021-07-22 23:20 ` slyfox at gcc dot gnu.org
2021-08-12 18:44 ` cvs-commit at gcc dot gnu.org
2021-08-12 18:46 ` slyfox at gcc dot gnu.org
2021-11-03 18:53 ` ppalka at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-101219-4-3CfQPGUNHI@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).