[llvm-bugs] [Bug 30885] New: conversion from double to unsigned raises invalid operation

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Nov 2 07:13:11 PDT 2016


            Bug ID: 30885
           Summary: conversion from double to unsigned raises invalid
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: jay.foad at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

I don't know if this counts as a bug, but it's certainly an annoyance in my
application: conversion from double to unsigned can raise an FP invalid
operation exception, even when the value being converted fits in the result

$ cat fptoui.c
#include <stdio.h>
unsigned fptoui(double d) {
  return (unsigned)d;
int main() {
  printf("%04x\n", __builtin_ia32_stmxcsr());
  printf("%04x\n", __builtin_ia32_stmxcsr());
$ ~/llvm/build/bin/clang --version
clang version 4.0.0 (trunk) (llvm/trunk 285680)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/jay/llvm/build/bin
$ clang -m32 -msse2 -o fptoui fptoui.c && ./fptoui

The "1f81" in the last line indicates that the invalid operation bit has been
set in mxcsr register.

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/20161102/5c9687f1/attachment.html>

More information about the llvm-bugs mailing list