Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/init/string3.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 // PR tree-optimization/71625 - missing strlen optimization on different | |
2 // array initialization style | |
3 // | |
4 // Verify that strlen() call with a constant character array argument | |
5 // initialized with non-constant elements isn't folded. | |
6 // | |
7 // { dg-do compile } | |
8 // { dg-options "-O2 -fdump-tree-optimized" } | |
9 | |
10 | |
11 extern const char c; | |
12 const char a0[] = { 'a', 'b', 'c', c }; | |
13 | |
14 int len0 () | |
15 { | |
16 return __builtin_strlen (a0); | |
17 } | |
18 | |
19 const char &ref = c; | |
20 const char a1[] = { 'a', 'b', 'c', ref }; | |
21 | |
22 int len1 () | |
23 { | |
24 return __builtin_strlen (a1); | |
25 } | |
26 | |
27 const char* const ptr = &c; | |
28 const char a2[] = { 'a', 'b', 'c', *ptr }; | |
29 | |
30 int len2 () | |
31 { | |
32 return __builtin_strlen (a2); | |
33 } | |
34 | |
35 // { dg-final { scan-tree-dump-times "strlen" 3 "optimized" } } |