OSDN Git Service

* gcc.c-torture/compile/20080625-1.c: Skip for M32C.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / compile / 950729-1.c
1 static const char * const lcset = "0123456789abcdef";
2 static const char * const ucset = "0123456789ABCDEF";
3
4 char *
5 f (char *buffer, long long value, char type)
6 {
7   int base, i;
8
9   i = 128  - 1;
10   buffer[i--] = '\0';
11
12   switch (type)
13     {
14     case 'u':
15     case 'o':
16     case 'x':
17     case 'X':
18       if (type == 'u')
19         base = 10;
20       else if (type == 'o')
21         base = 8;
22       else
23         base = 16;
24
25       while (i >= 0)
26         {
27           if (type == 'X')
28             buffer[i--] = ucset[((unsigned long long) value) % base];
29           else
30             buffer[i--] = lcset[((unsigned long long) value) % base];
31
32           if ((value = ((unsigned long long) value) / base) == 0)
33             break;
34         }
35       break;
36     }
37
38   return &buffer[++i];
39 }