From: "kubo at jiubao dot org" <sourceware-bugzilla@sourceware.org>
To: elfutils-devel@sourceware.org
Subject: [Bug libdw/21330] New: dwarf_peel_type() loops infinitely for typedef const struct ...
Date: Thu, 30 Mar 2017 02:06:00 -0000 [thread overview]
Message-ID: <bug-21330-10460@http.sourceware.org/bugzilla/> (raw)
https://sourceware.org/bugzilla/show_bug.cgi?id=21330
Bug ID: 21330
Summary: dwarf_peel_type() loops infinitely for typedef const
struct ...
Product: elfutils
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libdw
Assignee: unassigned at sourceware dot org
Reporter: kubo at jiubao dot org
CC: elfutils-devel at sourceware dot org
Target Milestone: ---
When a type is defined as "typedef const struct foo foo_t", dwarf_peel_type()
for foo_t loops infinitely.
38 int
39 dwarf_peel_type (Dwarf_Die *die, Dwarf_Die *result)
40 {
41 int tag;
42
43 /* Ignore previous errors. */
44 if (die == NULL)
45 return -1;
46
47 *result = *die;
48 tag = INTUSE (dwarf_tag) (result);
49 while (tag == DW_TAG_typedef
50 || tag == DW_TAG_const_type
51 || tag == DW_TAG_volatile_type
52 || tag == DW_TAG_restrict_type
53 || tag == DW_TAG_atomic_type)
54 {
55 Dwarf_Attribute attr_mem;
56 Dwarf_Attribute *attr = INTUSE (dwarf_attr_integrate) (die,
DW_AT_type,
57 &attr_mem);
58 if (attr == NULL)
59 return 1;
60
61 if (INTUSE (dwarf_formref_die) (attr, result) == NULL)
62 return -1;
63
64 tag = INTUSE (dwarf_tag) (result);
65 }
...
dwarf_tag() at line 48 returns DW_TAG_typedef.
dwarf_attr_integrate() and dwarf_formref_die() sets DW_AT_type of die to
result.
dwarf_tag() at line 64 returns DW_TAG_const.
dwarf_attr_integrate() and dwarf_formref_die() sets same value to result
because the first argument of dwarf_attr_integrate() is unchanged.
dwarf_tag() at line 64 returns same value forever.
--
You are receiving this mail because:
You are on the CC list for the bug.
next reply other threads:[~2017-03-30 2:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-30 2:06 kubo at jiubao dot org [this message]
2017-03-30 9:29 ` [Bug libdw/21330] " mark at klomp dot org
2017-03-30 10:27 ` mark at klomp dot org
2017-04-05 14:43 ` mark at klomp 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-21330-10460@http.sourceware.org/bugzilla/ \
--to=sourceware-bugzilla@sourceware.org \
--cc=elfutils-devel@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).