[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