[llvm-bugs] [Bug 39914] Incorrect code when right shifting signed int by more than its size
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Dec 7 06:26:55 PST 2018
https://bugs.llvm.org/show_bug.cgi?id=39914
Hal Finkel <hfinkel at anl.gov> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |INVALID
Status|NEW |RESOLVED
--- Comment #1 from Hal Finkel <hfinkel at anl.gov> ---
While I understand why you think that should be true, given how the operation
might work at the hardware level, the C/C++ specifications don't define the
behavior of shifts greater-than or equal-to the number of bits in the type.
Clang's behavior here is not a bug. The optimizer optimizes code assuming that
code that exhibits undefined behavior is not actually executed (and, thus, it
doesn't really matter what it does). You might find it useful to compile your
code with -fsanitize=undefined to enable the undefined-behavior sanitizer.
--
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/20181207/f7141e74/attachment.html>
More information about the llvm-bugs
mailing list