// { dg-do link  }
// { dg-options "-Wconversion" }

#define NULL __null

void g(int) {}
void g(long) {}
extern void g(void*);

template <int I>
void h() {}

void k(int) {}

template <class T>
void l(T);

template <>
void l(int) {}

template <>
void l(long) {}

int main()
{
  int i = NULL; // { dg-warning "" } converting NULL to non-pointer type
  float z = NULL; // { dg-warning "" } converting NULL to non-pointer type
  int a[2];

  i != NULL; // { dg-warning "" } NULL used in arithmetic
  NULL != z; // { dg-warning "" } NULL used in arithmetic
  k != NULL; // No warning: decay conversion
  NULL != a; // Likewise.
  -NULL;     // converting NULL to non-pointer type
  +NULL;     // converting NULL to non-pointer type
  ~NULL;     // converting NULL to non-pointer type
  a[NULL] = 3; // converting NULL to non-pointer-type
  i = NULL;  // { dg-warning "" } converting NULL to non-pointer type
  z = NULL;  // { dg-warning "" } converting NULL to non-pointer type
  k(NULL);   // { dg-warning "" } converting NULL to int
  g(NULL);   // converting NULL to int
  h<NULL>(); // No warning: NULL bound to integer template parameter
  l(NULL);   // converting NULL to int
  NULL && NULL; // { dg-warning "" } converting NULL to bool (specific warning)
}
