public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug exp/27070] gdb crashes when comparing 2 instances of the same enum
Date: Sat, 19 Dec 2020 12:43:43 +0000	[thread overview]
Message-ID: <bug-27070-4717-UJyGtNSlOE@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-27070-4717@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=27070

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Hannes Domani <ssbssa@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fa639f555afbe6bf670c27d161c42974740987cb

commit fa639f555afbe6bf670c27d161c42974740987cb
Author: Hannes Domani <ssbssa@yahoo.de>
Date:   Mon Dec 14 19:06:38 2020 +0100

    Don't compare types of enum fields

    Comparing types of enum fields results in a crash, because they don't
    have a type.

    It can be reproduced by comparing the types of 2 instances of the same
    enum type in different objects:

    enum.h:

        enum e
        {
          zero,
          one,
        };

    enum-1.c:

        #include <enum.h>
        int func();
        enum e e1;
        int main()
        {
          return e1 + func();
        }

    enum-2.c:

        #include <enum.h>
        enum e e2;
        int func()
        {
          return e2;
        }

    $ gcc -g -oenum enum-1.c enum-2.c
    $ gdb -q enum.exe
    Reading symbols from enum.exe...
    (gdb) py
print(gdb.parse_and_eval("e1").type==gdb.parse_and_eval("e2").type)

    Thread 1 received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 6184.0x1cc4]
    check_typedef (type=0x0) at
C:/src/repos/binutils-gdb.git/gdb/gdbtypes.c:2745
    2745      while (type->code () == TYPE_CODE_TYPEDEF)

    gdb/ChangeLog:

    2020-12-19  Hannes Domani  <ssbssa@yahoo.de>

            PR exp/27070
            * gdbtypes.c (check_types_equal): Don't compare types of enum
fields.

    gdb/testsuite/ChangeLog:

    2020-12-19  Hannes Domani  <ssbssa@yahoo.de>

            PR exp/27070
            * gdb.python/compare-enum-type-a.c: New test.
            * gdb.python/compare-enum-type-b.c: New test.
            * gdb.python/compare-enum-type.exp: New file.
            * gdb.python/compare-enum-type.h: New test.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2020-12-19 12:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-14 17:01 [Bug exp/27070] New: " ssbssa at sourceware dot org
2020-12-14 18:14 ` [Bug exp/27070] " ssbssa at sourceware dot org
2020-12-19 12:43 ` cvs-commit at gcc dot gnu.org [this message]
2020-12-19 12:46 ` ssbssa at sourceware dot 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-27070-4717-UJyGtNSlOE@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.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).