PR testsuite/86649
[official-gcc.git] / gcc / testsuite / g++.dg / tree-ssa / pr8781.C
blob1f115b2b26d10075bb7358c470c6036eeebe0823
1 /* { dg-do compile } */
2 /* { dg-options "-O -fno-tree-sra -fdump-tree-fre1" } */
4 int f();
6 template<typename predicate>
7 class noop_t {
8     const predicate &pred;
9 public:
10     explicit noop_t(const predicate &p) : pred(p) {}
12     int operator()() const { return pred(); }
15 template<typename predicate>
16 inline noop_t<predicate> noop(const predicate &pred) {
17     return noop_t<predicate>(pred);
20 int x()
22   return (noop(noop(noop(noop(noop(noop(noop(noop(noop(f)))))))))());
25 /* We should optimize this to a direct call.  */
27 /* { dg-final { scan-tree-dump-times "= f \\(\\);" 1 "fre1" } } */