Hacker News new | ask | show | jobs
by ufo 3889 days ago
Yes, the pointer comparison is UB but if the compiler didn't go out of its way to screw you over UB code then it would be a reasonable way to prevent deadlock.
1 comments

There is a defined method for comparing such pointers. Take unsigned char pointers to them and inspect their bytes. Then write your code, using that information, that does the comparison, assuming you know your architecture.

It is defined behavior to read the bytes of any object using unsigned char.

Alternatively, if the implementation supports uintptr_t, you can convert to that and then compare the respective integral values.