• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 -S -O3 -fno-builtin -o - %s | FileCheck %s
2 // rdar://10551066
3 
4 typedef __SIZE_TYPE__ size_t;
5 
6 double ceil(double x);
7 double copysign(double,double);
8 double cos(double x);
9 double fabs(double x);
10 double floor(double x);
11 char *strcat(char *s1, const char *s2);
12 char *strncat(char *s1, const char *s2, size_t n);
13 char *strchr(const char *s, int c);
14 char *strrchr(const char *s, int c);
15 int strcmp(const char *s1, const char *s2);
16 int strncmp(const char *s1, const char *s2, size_t n);
17 char *strcpy(char *s1, const char *s2);
18 char *stpcpy(char *s1, const char *s2);
19 char *strncpy(char *s1, const char *s2, size_t n);
20 size_t strlen(const char *s);
21 char *strpbrk(const char *s1, const char *s2);
22 size_t strspn(const char *s1, const char *s2);
23 double strtod(const char *nptr, char **endptr);
24 float strtof(const char *nptr, char **endptr);
25 long double strtold(const char *nptr, char **endptr);
26 long int strtol(const char *nptr, char **endptr, int base);
27 long long int strtoll(const char *nptr, char **endptr, int base);
28 unsigned long int strtoul(const char *nptr, char **endptr, int base);
29 unsigned long long int strtoull(const char *nptr, char **endptr, int base);
30 
t1(double x)31 double t1(double x) { return ceil(x); }
32 // CHECK: t1
33 // CHECK: ceil
34 
t2(double x,double y)35 double t2(double x, double y) { return copysign(x,y); }
36 // CHECK: t2
37 // CHECK: copysign
38 
t3(double x)39 double t3(double x) { return cos(x); }
40 // CHECK: t3
41 // CHECK: cos
42 
t4(double x)43 double t4(double x) { return fabs(x); }
44 // CHECK: t4
45 // CHECK: fabs
46 
t5(double x)47 double t5(double x) { return floor(x); }
48 // CHECK: t5
49 // CHECK: floor
50 
t6(char * x)51 char *t6(char *x) { return strcat(x, ""); }
52 // CHECK: t6
53 // CHECK: strcat
54 
t7(char * x)55 char *t7(char *x) { return strncat(x, "", 1); }
56 // CHECK: t7
57 // CHECK: strncat
58 
t8(void)59 char *t8(void) { return strchr("hello, world", 'w'); }
60 // CHECK: t8
61 // CHECK: strchr
62 
t9(void)63 char *t9(void) { return strrchr("hello, world", 'w'); }
64 // CHECK: t9
65 // CHECK: strrchr
66 
t10(void)67 int t10(void) { return strcmp("foo", "bar"); }
68 // CHECK: t10
69 // CHECK: strcmp
70 
t11(void)71 int t11(void) { return strncmp("foo", "bar", 3); }
72 // CHECK: t11
73 // CHECK: strncmp
74 
t12(char * x)75 char *t12(char *x) { return strcpy(x, "foo"); }
76 // CHECK: t12
77 // CHECK: strcpy
78 
t13(char * x)79 char *t13(char *x) { return stpcpy(x, "foo"); }
80 // CHECK: t13
81 // CHECK: stpcpy
82 
t14(char * x)83 char *t14(char *x) { return strncpy(x, "foo", 3); }
84 // CHECK: t14
85 // CHECK: strncpy
86 
t15(void)87 size_t t15(void) { return strlen("foo"); }
88 // CHECK: t15
89 // CHECK: strlen
90 
t16(char * x)91 char *t16(char *x) { return strpbrk(x, ""); }
92 // CHECK: t16
93 // CHECK: strpbrk
94 
t17(char * x)95 size_t t17(char *x) { return strspn(x, ""); }
96 // CHECK: t17
97 // CHECK: strspn
98 
t18(char ** x)99 double t18(char **x) { return strtod("123.4", x); }
100 // CHECK: t18
101 // CHECK: strtod
102 
t19(char ** x)103 float t19(char **x) { return strtof("123.4", x); }
104 // CHECK: t19
105 // CHECK: strtof
106 
t20(char ** x)107 long double t20(char **x) { return strtold("123.4", x); }
108 // CHECK: t20
109 // CHECK: strtold
110 
t21(char ** x)111 long int t21(char **x) { return strtol("1234", x, 10); }
112 // CHECK: t21
113 // CHECK: strtol
114 
t22(char ** x)115 long int t22(char **x) { return strtoll("1234", x, 10); }
116 // CHECK: t22
117 // CHECK: strtoll
118 
t23(char ** x)119 long int t23(char **x) { return strtoul("1234", x, 10); }
120 // CHECK: t23
121 // CHECK: strtoul
122 
t24(char ** x)123 long int t24(char **x) { return strtoull("1234", x, 10); }
124 // CHECK: t24
125 // CHECK: strtoull
126