1/* { dg-do compile } */
2/* { dg-options "-O2 -fdump-tree-einline2" } */
3/* { dg-add-options bind_pic_locally } */
4
5namespace std {
6  extern "C" void puts(const char *s);
7}
8
9template <class T, class E> void
10foreach (T b, T e, void (*ptr)(E))
11{
12  for (; b != e; b++)
13    ptr(*b);
14}
15
16void
17inline_me (char *x)
18{
19  std::puts(x);
20}
21
22static void
23inline_me_too (char *x)
24{
25  std::puts(x);
26}
27
28int main(int argc, char **argv)
29{
30  foreach (argv, argv + argc, inline_me);
31  foreach (argv, argv + argc, inline_me_too);
32}
33
34/* { dg-final { scan-tree-dump-times "Inlining void inline_me\\(" 1 "einline2"} } */
35/* { dg-final { scan-tree-dump-times "Inlining void inline_me_too\\(" 1 "einline2"} } */
36/* { dg-final { cleanup-tree-dump "einline2" } } */
37