aboutsummaryrefslogtreecommitdiff
path: root/SingleSource/Regression/C/gcc-c-torture/execute/960909-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/960909-1.c')
-rw-r--r--SingleSource/Regression/C/gcc-c-torture/execute/960909-1.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/960909-1.c b/SingleSource/Regression/C/gcc-c-torture/execute/960909-1.c
new file mode 100644
index 00000000..b487c999
--- /dev/null
+++ b/SingleSource/Regression/C/gcc-c-torture/execute/960909-1.c
@@ -0,0 +1,29 @@
+int
+ffs (x)
+ int x;
+{
+ int bit, mask;
+
+ if (x == 0)
+ return 0;
+
+ for (bit = 1, mask = 1; !(x & mask); bit++, mask <<= 1)
+ ;
+
+ return bit;
+}
+
+f (x)
+ int x;
+{
+ int y;
+ y = ffs (x) - 1;
+ if (y < 0)
+ abort ();
+}
+
+main ()
+{
+ f (1);
+ exit (0);
+}