Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/ext/constexpr-builtin1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 // PR c++/80265 | |
2 // { dg-do compile { target c++14 } } | |
3 | |
4 constexpr bool compare() { | |
5 char s1[] = "foo"; | |
6 char s2[] = "fxo"; | |
7 if (!__builtin_memcmp(s1, s2, 3)) | |
8 return false; | |
9 s2[1] = 'o'; | |
10 if (__builtin_memcmp(s1, s2, 3)) | |
11 return false; | |
12 if (__builtin_strcmp(s1, s2)) | |
13 return false; | |
14 return true; | |
15 } | |
16 | |
17 constexpr bool length() { | |
18 char s[] = "foo"; | |
19 if (__builtin_strlen(s) != 3) | |
20 return false; | |
21 return true; | |
22 } | |
23 | |
24 constexpr bool find() { | |
25 char s[] = "foo"; | |
26 if (__builtin_memchr(s, 'f', 3) != s) | |
27 return false; | |
28 if (__builtin_strchr(s, 'o') != s+1) | |
29 return false; | |
30 if (__builtin_strstr(s, "oo") != s+1) | |
31 return false; | |
32 return true; | |
33 } | |
34 | |
35 static_assert( compare(), "" ); | |
36 static_assert( length(), "" ); | |
37 static_assert( find(), "" ); |