https://llvm.org/bugs/show_bug.cgi?id=30885
Bug ID: 30885 Summary: conversion from double to unsigned raises invalid operation Product: libraries Version: trunk Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Backend: X86 Assignee: unassignedb...@nondot.org Reporter: jay.f...@gmail.com CC: llvm-bugs@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 type. $ cat fptoui.c #include <stdio.h> unsigned fptoui(double d) { return (unsigned)d; } int main() { printf("%04x\n", __builtin_ia32_stmxcsr()); fptoui(3e9); 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 1f80 1f81 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.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs