summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr56890-2.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr56890-2.c')
-rw-r--r--gcc/testsuite/gcc.dg/pr56890-2.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr56890-2.c b/gcc/testsuite/gcc.dg/pr56890-2.c
new file mode 100644
index 00000000000..474327e9d03
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr56890-2.c
@@ -0,0 +1,19 @@
+/* PR target/56890 */
+/* Reported by Rainer Jung <rainer.jung@kippdata.de> */
+
+/* { dg-do assemble } */
+/* { dg-options "-O" } */
+
+unsigned int buggy(unsigned int min, unsigned int max)
+{
+ unsigned int number;
+ if (max < 16384) {
+ unsigned short num16;
+ num16 = min + (long) ((double) (max - min + 1.0) * (num16 / (65535 + 1.0)));
+ return num16;
+ }
+ else {
+ (number) = min + (long) ((double) (max - min + 1.0) * (number / (4294967295U + 1.0)));
+ }
+ return number;
+}