| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-ipa-icf" } */ |
| |
| struct A |
| { |
| }; |
| template <class L, class R> A operator%(L, R); |
| template <class A0, class A1, class A2, class A3> |
| void make_tuple (A0 &, A1, A2, A3); |
| A |
| bar (int p1, char p2, int p3, double p4) |
| { |
| A a; |
| make_tuple (p1, p2, p3, p4); |
| return "int; char; string; double; " % a; |
| } |
| A |
| foo (int p1, char p2, int p3, double p4) |
| { |
| A b; |
| make_tuple (p1, p2, p3, p4); |
| return "int; char; string; double; " % b; |
| } |
| |
| /* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */ |