1// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3// PR10034
4struct X {};
5
6void exx(X) {}
7
8int test_ptr10034(int argc, char **argv)
9{
10 if (argc > 3)
11   goto end;
12
13 X x;
14 X xs[16];
15 exx(x);
16
17 end:
18   if (argc > 1) {
19   for (int i = 0; i < argc; ++i)
20   {
21
22   }
23   }
24   return 0;
25}
26
27struct Y {
28  ~Y();
29};
30
31void test_Y() {
32  goto end; // expected-error{{goto into protected scope}}
33  Y y; // expected-note{{jump bypasses variable with a non-trivial destructor}}
34 end:
35  return;
36}
37
38struct Z {
39  Z operator=(const Z&);
40};
41
42void test_Z() {
43  goto end; // expected-error{{goto into protected scope}}
44  Z z; // expected-note{{jump bypasses initialization of non-POD variable}}
45 end:
46  return;
47}
48