// Bug c++/83871 - wrong code due to attributes on distinct template
// specializations
// Test to verify that an explicit function template specifialization
// does not "inherit" attribute nonnull from an argument declared with
// one in the primary template.
// { dg-do compile }
// { dg-options "-O -Wall" }

template <class T>
void __attribute__ ((nonnull (1)))
f (T*, T*, T*);

template <>
void
f<int>(int*, int*, int*);     // { dg-warning "may be missing attributes" }

template <>
void __attribute__ ((nonnull (3)))
f<float>(float*, float*, float*);


void test_nonnull (void)
{
  f<void>(0, 0, 0);           // { dg-warning "argument 1 null where non-null expected" }

  f<int>(0, 0, 0);            // { dg-bogus "null" }

  f<float>(0, 0, 0);
  // { dg-bogus "argument 1 null where non-null expected" "" { target *-*-* } .-1 }
  // { dg-warning "argument 3 null where non-null expected" "" { target *-*-* } .-2 }
}
