Compiler projects using llvm
// Like the compiler, the static analyzer treats some functions differently if
// they come from a system header -- for example, it is assumed that system
// functions do not arbitrarily free() their parameters, and that some bugs
// found in system headers cannot be fixed by the user and should be
// suppressed.

#pragma clang system_header

struct RecordInSystemHeader {
  int a;
  int b;
};

template <class T>
struct ContainerInSystemHeader {
  T &t;
  ContainerInSystemHeader(T& t) : t(t) {}
};