[llvm-bugs] [Bug 35860] New: displaying some long double values causes lldb to crash

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Jan 8 11:41:47 PST 2018


https://bugs.llvm.org/show_bug.cgi?id=35860

            Bug ID: 35860
           Summary: displaying some long double values causes lldb to
                    crash
           Product: lldb
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs
          Assignee: lldb-dev at lists.llvm.org
          Reporter: oliver at apple.com
                CC: llvm-bugs at lists.llvm.org

If I have something along the lines of:

  union {
    struct {
      int x;
      int y;
      int node_index;
    } as_point;
    long double as_number;
  } data;
  data.as_point.x = 0;
  data.as_point.y = 0;
  data.as_point.node_index = 512;

and pause after assigning to node_index, then try to display the struct:

p data

lldb crashes. I've reduced this to the problem being the display of the long
double, specifically it seems to be going wrong when the mantissa is zero but
the exponent in non-zero. Given the wonkiness of long double on x86 I assume
this is incorrect handling of a denormal (pseudo-denormal? I was reading some
of the docs on it and that appears to be a thing #wat).

It's a real problem in Xcode as Xcode auto displays the values of all locals
and so lldb crashes whenever this happens. I can work around this if I know it
may happen in a given function by manually setting the display type to
hex/binary/anything-other-than-default.

-- 
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/20180108/e8457bcd/attachment.html>


More information about the llvm-bugs mailing list