1 /* { dg-do run } */
2 /* { dg-options "-Os" } */
3
4 unsigned int
5 foo (unsigned int x)
6 {
7 unsigned int r = x;
8 while (--x)
9 r *= x;
10 return r;
11 }
12
13 unsigned long long
14 bar (unsigned long long x)
15 {
16 unsigned long long r = x;
17 while (--x)
18 r *= x;
19 return r;
20 }
21
22 extern void abort (void);
23
24 int
25 main (void)
26 {
27 if (foo (5) != 120 || bar (5) != 120)
28 abort ();
29 return 0;
30 }