// Defind by the linker to have the address of the start of the heap.
externunsignedchar__heap_base;
externunsignedchar__heap_end;
// Behavior of right shifting a signed integer is compiler implementation defined.
static_assert((((int32_t)0x80000000U)>>31)==-1,"This malloc implementation requires that right-shifting a signed integer produces a sign-extending (arithmetic) shift!");