Bruno Haible wrote:
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.
It's not documented in the GCC manual. I found documentation for it here:
https://software.intel.com/en-us/articles/intel-memory-protection-extensions-enabling-guide
This points to a freely-readable PDF.
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.
Ah, sorry, I was thinking about my translation of that into code that did not
convert pointers back from uintptr_t.