<div dir="ltr">Hi all!<br><br>There is the cpp-test "p755a.cpp":<br><br>// It checks to see if you can define your own global delete operator.<br>extern "C" void _exit(int);<br>void operator delete(void *p) throw() {<br>  _exit(0);<br>}<br>int main () {<br>  int* i = new int;<br>  delete i;<br>  return 1;<br>}<br><br>clang-3.8 returns 0 with O0 and returns 1 with O1<br>gcc always returns 0<br><br>clang with O1 uses default "delete":<br><br>clang-3.8 -c -S p755a.cpp -O1<br><br>...<br>main:                                   # @main<br>    .cfi_startproc<br># BB#0:                                 # %entry<br>    movl    $1, %eax<br>    retq<br>.Lfunc_end1:<br>    .size    main, .Lfunc_end1-main<br>    .cfi_endproc<br>...<br><br>As far as I understand it is not right...<br><br>I will be grateful to get any explanations.<br><br>PS<br>I haven't tested clang 4.0 yet...<br></div>