[lldb-dev] [Bug 33459] New: p static_cast<int16_t>(...) has inconsistent output

via lldb-dev lldb-dev at lists.llvm.org
Wed Jun 14 09:07:24 PDT 2017


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

            Bug ID: 33459
           Summary: p static_cast<int16_t>(...) has inconsistent output
           Product: lldb
           Version: 3.9
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs
          Assignee: lldb-dev at lists.llvm.org
          Reporter: vince at nethacker.com
                CC: llvm-bugs at lists.llvm.org

(lldb) version
lldb version 3.9.0 ( revision )

(lldb) p r_sigma_float
(const float) $11 = 0.0500000007

(correct)

(lldb) p (1.0f / (2 * r_sigma_float * r_sigma_float)) * (1<<kQ)
(float) $3 = 51199.9961

(correct)

(lldb) p static_cast<int16_t>(51199.99f)
(int16_t) $1 = 32767

Technically, this is undefined but the output here matches what g++ does so I
think it's good.  Clang current returns inconsistent results.  Ideally, it
would be nice for lldb to print (undefined) or be consistent with whatever
compiler you are using.  I'm hoping to get clang's behavior changed:
https://bugs.llvm.org/show_bug.cgi?id=33448
http://eel.is/c++draft/conv.fpint#1

(lldb) p static_cast<int16_t>((1.0f / (2 * r_sigma_float * r_sigma_float)) *
(1<<kQ))
(int16_t) $2 = -14337

Again this is undefined but it is inconsistent with the previous behavior so I
would call it a bug.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20170614/2202cbed/attachment.html>


More information about the lldb-dev mailing list