// RUN: %clang_cc1 -fsyntax-only -verify %s

void escapefunc(int *);
void noescapefunc(__attribute__((noescape)) int *);
void (*escapefuncptr)(int *);
void (*noescapefuncptr)(__attribute__((noescape)) int *);

void func_ne(__attribute__((noescape)) int *, int *);
void func_en(int *, __attribute__((noescape)) int *);

void (*funcptr_ee)(int *, int *);
void (*funcptr_nn)(__attribute__((noescape)) int *, __attribute__((noescape)) int *);

void test0(int c) {
  escapefuncptr = &escapefunc;
  escapefuncptr = &noescapefunc;
  noescapefuncptr = &escapefunc; // expected-error {{incompatible function pointer types assigning to 'void (*)(__attribute__((noescape)) int *)' from 'void (*)(int *)'}}
  noescapefuncptr = &noescapefunc;

  escapefuncptr = c ? &escapefunc : &noescapefunc;
  noescapefuncptr = c ? &escapefunc : &noescapefunc; // expected-error {{incompatible function pointer types assigning to 'void (*)(__attribute__((noescape)) int *)' from 'void (*)(int *)'}}

  funcptr_ee = c ? &func_ne : &func_en;
  funcptr_nn = c ? &func_ne : &func_en; // expected-error {{incompatible function pointer types assigning to 'void (*)(__attribute__((noescape)) int *, __attribute__((noescape)) int *)' from 'void (*)(int *, int *)'}}
}
