OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [builtins/] [strncmp-2.c] - Blame information for rev 774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 688 jeremybenn
/* Copyright (C) 2000, 2001, 2003, 2005  Free Software Foundation.
2
 
3
   Ensure all expected transformations of builtin strncmp occur and
4
   perform correctly.
5
 
6
   Written by Kaveh R. Ghazi, 11/26/2000.  */
7
 
8
extern void abort (void);
9
typedef __SIZE_TYPE__ size_t;
10
extern int strncmp (const char *, const char *, size_t);
11
 
12
void
13
main_test (void)
14
{
15
#if !defined(__OPTIMIZE__) || ((defined(__i386__) || defined (__x86_64__)) && !defined(__OPTIMIZE_SIZE__))
16
  /* These tests work on platforms which support cmpstrsi.  We test it
17
     at -O0 on all platforms to ensure the strncmp logic is correct.  */
18
  const char *const s1 = "hello world";
19
  const char *s2;
20
  int n = 6, x;
21
 
22
  s2 = s1;
23
  if (strncmp (++s2, "ello", 3) != 0 || s2 != s1+1)
24
    abort();
25
  s2 = s1;
26
  if (strncmp ("ello", ++s2, 3) != 0 || s2 != s1+1)
27
    abort();
28
  s2 = s1;
29
  if (strncmp (++s2, "ello", 4) != 0 || s2 != s1+1)
30
    abort();
31
  s2 = s1;
32
  if (strncmp ("ello", ++s2, 4) != 0 || s2 != s1+1)
33
    abort();
34
  s2 = s1;
35
  if (strncmp (++s2, "ello", 5) <= 0 || s2 != s1+1)
36
    abort();
37
  s2 = s1;
38
  if (strncmp ("ello", ++s2, 5) >= 0 || s2 != s1+1)
39
    abort();
40
  s2 = s1;
41
  if (strncmp (++s2, "ello", 6) <= 0 || s2 != s1+1)
42
    abort();
43
  s2 = s1;
44
  if (strncmp ("ello", ++s2, 6) >= 0 || s2 != s1+1)
45
    abort();
46
 
47
  s2 = s1;
48
  if (strncmp (++s2, "zllo", 3) >= 0 || s2 != s1+1)
49
    abort();
50
  s2 = s1;
51
  if (strncmp ("zllo", ++s2, 3) <= 0 || s2 != s1+1)
52
    abort();
53
  s2 = s1;
54
  if (strncmp (++s2, "zllo", 4) >= 0 || s2 != s1+1)
55
    abort();
56
  s2 = s1;
57
  if (strncmp ("zllo", ++s2, 4) <= 0 || s2 != s1+1)
58
    abort();
59
  s2 = s1;
60
  if (strncmp (++s2, "zllo", 5) >= 0 || s2 != s1+1)
61
    abort();
62
  s2 = s1;
63
  if (strncmp ("zllo", ++s2, 5) <= 0 || s2 != s1+1)
64
    abort();
65
  s2 = s1;
66
  if (strncmp (++s2, "zllo", 6) >= 0 || s2 != s1+1)
67
    abort();
68
  s2 = s1;
69
  if (strncmp ("zllo", ++s2, 6) <= 0 || s2 != s1+1)
70
    abort();
71
 
72
  s2 = s1;
73
  if (strncmp (++s2, "allo", 3) <= 0 || s2 != s1+1)
74
    abort();
75
  s2 = s1;
76
  if (strncmp ("allo", ++s2, 3) >= 0 || s2 != s1+1)
77
    abort();
78
  s2 = s1;
79
  if (strncmp (++s2, "allo", 4) <= 0 || s2 != s1+1)
80
    abort();
81
  s2 = s1;
82
  if (strncmp ("allo", ++s2, 4) >= 0 || s2 != s1+1)
83
    abort();
84
  s2 = s1;
85
  if (strncmp (++s2, "allo", 5) <= 0 || s2 != s1+1)
86
    abort();
87
  s2 = s1;
88
  if (strncmp ("allo", ++s2, 5) >= 0 || s2 != s1+1)
89
    abort();
90
  s2 = s1;
91
  if (strncmp (++s2, "allo", 6) <= 0 || s2 != s1+1)
92
    abort();
93
  s2 = s1;
94
  if (strncmp ("allo", ++s2, 6) >= 0 || s2 != s1+1)
95
    abort();
96
 
97
  s2 = s1; n = 2; x = 1;
98
  if (strncmp (++s2, s1+(x&3), ++n) != 0 || s2 != s1+1 || n != 3)
99
    abort();
100
  s2 = s1; n = 2; x = 1;
101
  if (strncmp (s1+(x&3), ++s2, ++n) != 0 || s2 != s1+1 || n != 3)
102
    abort();
103
  s2 = s1; n = 3; x = 1;
104
  if (strncmp (++s2, s1+(x&3), ++n) != 0 || s2 != s1+1 || n != 4)
105
    abort();
106
  s2 = s1; n = 3; x = 1;
107
  if (strncmp (s1+(x&3), ++s2, ++n) != 0 || s2 != s1+1 || n != 4)
108
    abort();
109
  s2 = s1; n = 4; x = 1;
110
  if (strncmp (++s2, s1+(x&3), ++n) != 0 || s2 != s1+1 || n != 5)
111
    abort();
112
  s2 = s1; n = 4; x = 1;
113
  if (strncmp (s1+(x&3), ++s2, ++n) != 0 || s2 != s1+1 || n != 5)
114
    abort();
115
  s2 = s1; n = 5; x = 1;
116
  if (strncmp (++s2, s1+(x&3), ++n) != 0 || s2 != s1+1 || n != 6)
117
    abort();
118
  s2 = s1; n = 5; x = 1;
119
  if (strncmp (s1+(x&3), ++s2, ++n) != 0 || s2 != s1+1 || n != 6)
120
    abort();
121
 
122
  s2 = s1; n = 2;
123
  if (strncmp (++s2, "zllo", ++n) >= 0 || s2 != s1+1 || n != 3)
124
    abort();
125
  s2 = s1; n = 2; x = 1;
126
  if (strncmp ("zllo", ++s2, ++n) <= 0 || s2 != s1+1 || n != 3)
127
    abort();
128
  s2 = s1; n = 3; x = 1;
129
  if (strncmp (++s2, "zllo", ++n) >= 0 || s2 != s1+1 || n != 4)
130
    abort();
131
  s2 = s1; n = 3; x = 1;
132
  if (strncmp ("zllo", ++s2, ++n) <= 0 || s2 != s1+1 || n != 4)
133
    abort();
134
  s2 = s1; n = 4; x = 1;
135
  if (strncmp (++s2, "zllo", ++n) >= 0 || s2 != s1+1 || n != 5)
136
    abort();
137
  s2 = s1; n = 4; x = 1;
138
  if (strncmp ("zllo", ++s2, ++n) <= 0 || s2 != s1+1 || n != 5)
139
    abort();
140
  s2 = s1; n = 5; x = 1;
141
  if (strncmp (++s2, "zllo", ++n) >= 0 || s2 != s1+1 || n != 6)
142
    abort();
143
  s2 = s1; n = 5; x = 1;
144
  if (strncmp ("zllo", ++s2, ++n) <= 0 || s2 != s1+1 || n != 6)
145
    abort();
146
 
147
  s2 = s1; n = 2;
148
  if (strncmp (++s2, "allo", ++n) <= 0 || s2 != s1+1 || n != 3)
149
    abort();
150
  s2 = s1; n = 2; x = 1;
151
  if (strncmp ("allo", ++s2, ++n) >= 0 || s2 != s1+1 || n != 3)
152
    abort();
153
  s2 = s1; n = 3; x = 1;
154
  if (strncmp (++s2, "allo", ++n) <= 0 || s2 != s1+1 || n != 4)
155
    abort();
156
  s2 = s1; n = 3; x = 1;
157
  if (strncmp ("allo", ++s2, ++n) >= 0 || s2 != s1+1 || n != 4)
158
    abort();
159
  s2 = s1; n = 4; x = 1;
160
  if (strncmp (++s2, "allo", ++n) <= 0 || s2 != s1+1 || n != 5)
161
    abort();
162
  s2 = s1; n = 4; x = 1;
163
  if (strncmp ("allo", ++s2, ++n) >= 0 || s2 != s1+1 || n != 5)
164
    abort();
165
  s2 = s1; n = 5; x = 1;
166
  if (strncmp (++s2, "allo", ++n) <= 0 || s2 != s1+1 || n != 6)
167
    abort();
168
  s2 = s1; n = 5; x = 1;
169
  if (strncmp ("allo", ++s2, ++n) >= 0 || s2 != s1+1 || n != 6)
170
    abort();
171
 
172
#endif  
173
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.