xref: /llvm-project/compiler-rt/test/tsan/Darwin/realloc-zero.cpp (revision bcaeed49cb063de9fe504aa29e1cadff8a7be710)
1*bcaeed49SFangrui Song // Test that realloc(nullptr, 0) return a non-NULL pointer.
2*bcaeed49SFangrui Song 
3*bcaeed49SFangrui Song // RUN: %clang_tsan %s -o %t
4*bcaeed49SFangrui Song // RUN: %run %t 2>&1 | FileCheck %s
5*bcaeed49SFangrui Song 
6*bcaeed49SFangrui Song #include <malloc/malloc.h>
7*bcaeed49SFangrui Song #include <stdio.h>
8*bcaeed49SFangrui Song #include <stdlib.h>
9*bcaeed49SFangrui Song #include <sys/mman.h>
10*bcaeed49SFangrui Song 
main()11*bcaeed49SFangrui Song int main() {
12*bcaeed49SFangrui Song   void *p = realloc(NULL, 0);
13*bcaeed49SFangrui Song   if (!p) {
14*bcaeed49SFangrui Song     abort();
15*bcaeed49SFangrui Song   }
16*bcaeed49SFangrui Song   fprintf(stderr, "Okay.\n");
17*bcaeed49SFangrui Song   return 0;
18*bcaeed49SFangrui Song }
19*bcaeed49SFangrui Song 
20*bcaeed49SFangrui Song // CHECK: Okay.
21