Compiler projects using llvm
// RUN: %clang_analyze_cc1 -analyzer-checker=core,unix.Malloc -Wno-incompatible-library-redeclaration -verify %s

// Various tests to make the analyzer is robust against custom
// redeclarations of memory routines.
//
// You wouldn't expect to see much of this in normal code, but, for example,
// CMake tests can generate these.

// expected-no-diagnostics

char alloca(void);
char malloc(void);
char realloc(void);
char kmalloc(void);
char valloc(void);
char calloc(void);

char free(void);
char kfree(void);

void testCustomArgumentlessAllocation(void) {
  alloca(); // no-crash
  malloc(); // no-crash
  realloc(); // no-crash
  kmalloc(); // no-crash
  valloc(); // no-crash
  calloc(); // no-crash

  free(); // no-crash
  kfree(); // no-crash
}