==$(N)== Memcheck, a memory error detector
==$(N)== Copyright $(*)
==$(N)== Using $(*)
==$(N)== Command: $(*)
==$(N)== Parent PID: $(*)
==$(N)== 
==$(N)== Invalid write of size 4
==$(N)==    at 0x$(X): main (obj_constructor.c:$(N))
==$(N)==  Address 0x$(X) is $(N) bytes after a block of size $(N) free'd
==$(N)==    at 0x$(X): ${alloc_prep_block|???} $(*)
==$(N)==    by 0x$(X): ${palloc_reservation_create|???} $(*)
==$(N)==    by 0x$(X): ${palloc_operation|???} $(*)
==$(N)==    by 0x$(X): ${obj_alloc_construct|???} $(*)
==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
$(OPT)==$(N)==  Block was alloc'd at
$(OPT)==$(N)==    at 0x$(X): ${alloc_prep_block|???} $(*)
$(OPT)==$(N)==    by 0x$(X): ${palloc_reservation_create|???} $(*)
$(OPT)==$(N)==    by 0x$(X): ${palloc_operation|???} $(*)
$(OPT)==$(N)==    by 0x$(X): ${obj_alloc_construct|???} $(*)
$(OPT)==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
$(OPT)==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
==$(N)== 
==$(N)== Unaddressable byte(s) found during client check request
==$(N)==    at 0x$(X): pmem_flush (pmem.c:$(N))
==$(N)==    by 0x$(X): pmem_persist (pmem.c:$(N))
==$(N)==    by 0x$(X): ${obj_norep_persist|???} $(*)
==$(N)==    by 0x$(X): ${pmemops_xpersist|???} $(*)
==$(N)==    by 0x$(X): ${pmemops_persist|???} $(*)
==$(N)==    by 0x$(X): pmemobj_persist (obj.c:$(N))
==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
==$(N)==  Address 0x$(X) is 16 bytes after a block of size 112 free'd
==$(N)==    at 0x$(X): ${alloc_prep_block|???} $(*)
==$(N)==    by 0x$(X): ${palloc_reservation_create|???} $(*)
==$(N)==    by 0x$(X): ${palloc_operation|???} $(*)
==$(N)==    by 0x$(X): ${obj_alloc_construct|???} $(*)
==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
$(OPT)==$(N)==  Block was alloc'd at
$(OPT)==$(N)==    at 0x$(X): ${alloc_prep_block|???} $(*)
$(OPT)==$(N)==    by 0x$(X): ${palloc_reservation_create|???} $(*)
$(OPT)==$(N)==    by 0x$(X): ${palloc_operation|???} $(*)
$(OPT)==$(N)==    by 0x$(X): ${obj_alloc_construct|???} $(*)
$(OPT)==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
$(OPT)==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
==$(N)== 
==$(N)== 
==$(N)== HEAP SUMMARY:
$(OPT)==$(N)==     in use at exit: 0 bytes in 0 blocks
$(OPX)==$(N)==     in use at exit: $(NC) bytes in $(N) blocks
==$(N)==   total heap usage: $(NC) allocs, $(NC) frees, $(NC) bytes allocated
==$(N)== 
$(OPT)==$(N)== All heap blocks were freed -- no leaks are possible
$(OPT)==$(N)== 
$(OPX)==$(N)== LEAK SUMMARY:
$(OPT)==$(N)==    definitely lost: 0 bytes in 0 blocks
$(OPT)==$(N)==    indirectly lost: 0 bytes in 0 blocks
$(OPT)==$(N)==      possibly lost: 0 bytes in 0 blocks
$(OPT)==$(N)==    still reachable: 0 bytes in 0 blocks
$(OPT)==$(N)==         suppressed: $(NC) bytes in $(N) blocks
$(OPT)==$(N)== Reachable blocks (those to which a pointer was found) are not shown.
$(OPT)==$(N)== To see them, rerun with: --leak-check=full --show-leak-kinds=all
$(OPT)==$(N)== 
==$(N)== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: $(N) from $(N))
