summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/torture/pr42890.C
blob: 937367665dce29cb08074b40e8ebf927dd2fe57d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// PR tree-optimization/42890
// { dg-do compile }

extern "C" int puts (const char *) throw ();

struct S
{
  const char *a;
  const char **b;
  S (const char *s) { a = s; b = &a; }
  ~S () { puts (a); }
};

void
foo (int (*fn) (const char *))
{
  S a ("foo");
  fn ("bar");
}

int
main ()
{
  foo (puts);
}