[llvm-bugs] [Bug 39259] New: Incomplete DW_OP_piece in DWARF
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Oct 12 01:38:33 PDT 2018
https://bugs.llvm.org/show_bug.cgi?id=39259
Bug ID: 39259
Summary: Incomplete DW_OP_piece in DWARF
Product: new-bugs
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: mh+llvm at glandium.org
CC: llvm-bugs at lists.llvm.org
The following testcase was reduced from PresShell.cpp from the Firefox source:
$ cat > PresShell.ii <<EOF
typedef char a;
class b;
class c {
public:
b *operator->();
};
enum class d : a { e };
struct ChangesToFlush {
d mFlushType;
bool mFlushAnimations;
};
class f {
public:
c g;
};
class b {
public:
int h();
};
class i : f {
void j(ChangesToFlush);
void k(bool);
};
void i::j(ChangesToFlush aFlush) {
d l = aFlush.mFlushType;
aFlush.mFlushAnimations && g->h();
k(l < d::e);
}
$ clang++ -O2 -g -fno-exceptions -fno-rtti -fno-strict-aliasing -c PresShell.ii
-o PresShell.o
Relevant parts of dwarfdump of the resulting object:
< 1><0x000000f9> DW_TAG_structure_type
DW_AT_name ChangesToFlush
DW_AT_byte_size 0x00000002
< 2><0x00000146> DW_TAG_formal_parameter
DW_AT_location <loclist at offset
0x00000059 with 1 entries follows>
[ 0]< offset pair low-off : 0x00000000 addr 0x00000000
high-off 0x0000002e addr 0x0000002e>DW_OP_reg3 DW_OP_piece 1
DW_AT_name aFlush
The number following DW_OP_piece is the object size in bytes, which here is 1,
while the object actually has a byte size of 2.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20181012/2c888453/attachment.html>
More information about the llvm-bugs
mailing list