// RUN: %clang_cc1 -fsyntax-only -verify %s
template<int I>structTS{__attribute__((returns_nonnull))void*value_dependent(void){return I;// no-warning
}__attribute__((returns_nonnull))void*value_independent(void){return0;// expected-warning {{null returned from function that requires a non-null return value}}
}};namespaceTemplate{template<typename T>__attribute__((nonnull))voidf(T t);voidg(){f((void*)0);}// expected-warning {{null passed to a callee that requires a non-null argument}}
voidh(){f(0);}}