MaskRay added a comment. I just checked an extremely old version of glibc fetched from https://ftp.gnu.org/pub/gnu/glibc/
glibc-2.0.1.tar.gz 1997-02-04 03:00 3.7M `malloc/malloc.c` #if __STD_C void fREe(Void_t* mem) #else void fREe(mem) Void_t* mem; #endif { arena *ar_ptr; mchunkptr p; /* chunk corresponding to mem */ #if defined(_LIBC) || defined(MALLOC_HOOKS) if (__free_hook != NULL) { (*__free_hook)(mem); return; } #endif if (mem == 0) /* free(0) has no effect */ return; `__free_hook` (defaults to NULL) is a user-supplied hook (https://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html). If this failed for `operator delete`, it would mean various other `free(NULL)` would also fail. Repository: rL LLVM https://reviews.llvm.org/D52401 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits