// RUN: %clang_cc1 -fsyntax-only -verify %s
// expected-no-diagnostics

//PR9463
int subfun(const char *text) {
  const char *tmp = text;
  return 0;
}

void fun(const char* text) {
  int count = 0;
  bool check = true;

  if (check)
    {
      const char *end = text;

      if (check)
        {
          do
            {
              if (check)
                {
                  count = subfun(end);
                  goto end;
                }

              check = !check;
            }
          while (check);
        }
      // also works, after commenting following line of source code
      int e = subfun(end);
    }
 end:
  if (check)
    ++count;
}

const char *text = "some text";

int main() {
	const char *ptr = text;

	fun(ptr);

	return 0;
}
