The exact warning message is: Access to field 'mse_start' results in a
dereference of a null pointer (loaded from variable 'new_mark_stack_ptr').
Note: the warning is eliminated regardless of assertion checking status.
* typd_mlc.c (GC_array_mark_proc): Call ABORT if mark_stack_ptr is NULL
(thus orig_mark_stack_ptr is ensured to be non-NULL after the check).
mark_stack_ptr,
mark_stack_limit-1);
if (new_mark_stack_ptr == 0) {
+ /* Explicitly instruct Clang Static Analyzer that ptr is non-null. */
+ if (NULL == mark_stack_ptr) ABORT("Bad mark_stack_ptr");
+
/* Doesn't fit. Conservatively push the whole array as a unit */
/* and request a mark stack expansion. */
/* This cannot cause a mark stack overflow, since it replaces */