Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 
      3 template<int I>
      4 struct TS {
      5   __attribute__((returns_nonnull))
      6   void *value_dependent(void) {
      7     return I; // no-warning
      8   }
      9 
     10   __attribute__((returns_nonnull))
     11   void *value_independent(void) {
     12     return 0; // expected-warning {{null returned from function that requires a non-null return value}}
     13   }
     14 };
     15 
     16 namespace Template {
     17   template<typename T> __attribute__((nonnull)) void f(T t);
     18   void g() { f((void*)0); } // expected-warning {{null passed to a callee that requires a non-null argument}}
     19   void h() { f(0); }
     20 }
     21