1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | // expected-no-diagnostics |
3 | |
4 | //PR9463 |
5 | int subfun(const char *text) { |
6 | const char *tmp = text; |
7 | return 0; |
8 | } |
9 | |
10 | void fun(const char* text) { |
11 | int count = 0; |
12 | bool check = true; |
13 | |
14 | if (check) |
15 | { |
16 | const char *end = text; |
17 | |
18 | if (check) |
19 | { |
20 | do |
21 | { |
22 | if (check) |
23 | { |
24 | count = subfun(end); |
25 | goto end; |
26 | } |
27 | |
28 | check = !check; |
29 | } |
30 | while (check); |
31 | } |
32 | // also works, after commenting following line of source code |
33 | int e = subfun(end); |
34 | } |
35 | end: |
36 | if (check) |
37 | ++count; |
38 | } |
39 | |
40 | const char *text = "some text"; |
41 | |
42 | int main() { |
43 | const char *ptr = text; |
44 | |
45 | fun(ptr); |
46 | |
47 | return 0; |
48 | } |
49 | |