Hi Paul, > By the way, why write "if __GNUC__ >= 5 && !defined __cplusplus && > !defined __clang__" instead of "ifdef __CHKP__"? The latter is easier to > read....
I couldn't find any documentation for this __CHKP__ macro. > An advantage of the #ifdef __CHKP__ code I suggested is > that it never calculates a pointer outside the bounds of the > newly-allocated block (or to just past the block). Such calculations > violate the C standard The code that I committed does not have such "bad" pointers in intermediate expressions either. It computes a valid pointer, converts it to uintptr_t, does some arithmetic on it, and then converts back to a pointer. Since the resulting pointer is in the malloc'ed range, it is valid. Bruno