Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/tree-ssa/pr81408.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* { dg-do compile } */ | 1 /* { dg-do compile } */ |
2 /* { dg-options "-O2 -std=gnu++11 -fopt-info-loop-missed -Wunsafe-loop-optimizations" } */ | 2 /* { dg-options "-O2 -std=gnu++11 -fopt-info-loop-missed" } */ |
3 struct p | |
4 { | |
5 char *ay; | |
6 }; | |
3 | 7 |
4 namespace a { | 8 namespace a { |
5 void b () __attribute__ ((__noreturn__)); | 9 void b () __attribute__ ((__noreturn__)); |
6 template <typename> struct d; | 10 template <typename> struct d; |
7 template <typename e> struct d<e *> | 11 template <typename e> struct d<e *> |
17 template <typename j, typename> class k | 21 template <typename j, typename> class k |
18 { | 22 { |
19 j l; | 23 j l; |
20 | 24 |
21 public: | 25 public: |
22 typename d<j>::f operator* () {} | 26 typename d<j>::f operator* () { return p(); } |
23 void operator++ () { ++l; } | 27 void operator++ () { ++l; } |
24 j | 28 j |
25 aa () | 29 aa () |
26 { | 30 { |
27 return l; | 31 return l; |
31 bool | 35 bool |
32 operator!= (k<m, ab> o, k<n, ab> p2) | 36 operator!= (k<m, ab> o, k<n, ab> p2) |
33 { | 37 { |
34 return o.aa () != p2.aa (); | 38 return o.aa () != p2.aa (); |
35 } | 39 } |
36 struct p; | |
37 namespace a { | 40 namespace a { |
38 struct F | 41 struct F |
39 { | 42 { |
40 struct q | 43 struct q |
41 { | 44 { |
73 template <typename at, typename au> | 76 template <typename at, typename au> |
74 at | 77 at |
75 av (au o) | 78 av (au o) |
76 { | 79 { |
77 o.aq ('\n'); | 80 o.aq ('\n'); |
81 return at(); | |
78 } | 82 } |
79 u ax; | 83 u ax; |
80 } | 84 } |
81 struct p | |
82 { | |
83 char *ay; | |
84 }; | |
85 a::H t; | 85 a::H t; |
86 void | 86 void |
87 ShowHelpListCommands () | 87 ShowHelpListCommands () |
88 { | 88 { |
89 for (auto c : t) /* { dg-message "note: missed loop optimization: niters analysis .*" } */ | 89 for (auto c : t) /* { dg-missed "missed loop optimization: niters analysis .*" } */ |
90 a::ax << c.ay << a::av; | 90 a::ax << c.ay << a::av; |
91 } | 91 } |
92 | 92 |