[PATCH] D17993: [CodeGen] Apply 'nonnull' and 'dereferenceable(N)' to 'this' pointer arguments.

Benjamin Kramer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 21 03:14:53 PST 2020


bkramer added a comment.

In D17993#2409401 <https://reviews.llvm.org/D17993#2409401>, @brooksmoses wrote:

> So, I have bad news: This causes OpenJDK to segfault.  The relevant code is here:
> https://github.com/openjdk/jdk/blob/master/src/hotspot/share/memory/arena.cpp#L311
>
>   void Arena::destruct_contents() {
>     if (UseMallocOnly && _first != NULL) {
>       char* end = _first->next() ? _first->top() : _hwm;
>       free_malloced_objects(_first, _first->bottom(), end, _hwm);
>     }
>     // reset size before chop to avoid a rare racing condition
>     // that can have total arena memory exceed total chunk memory
>     set_size_in_bytes(0);
>     _first->chop();
>     reset();
>   }
>
> I've also seen a segfault in Verilator that root-causes to this patch, though I haven't yet tracked that down to the source code.
>
> I hate to say it, but is this a significant enough problem to call for a (temporary, I hope) rollback?

I don't see why this would be enough for a rollback, jdk is supposed to build with `-fno-delete-null-pointer-checks`, which disables this optimization:
https://github.com/openjdk/jdk/blob/master/make/autoconf/flags-cflags.m4#L842

Is the build system not setting this when using Clang?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D17993/new/

https://reviews.llvm.org/D17993



More information about the llvm-commits mailing list