Hacker News new | ask | show | jobs
by userbinator 2109 days ago
In C99:

Annex J.2 "The value of a pointer to an object whose lifetime has ended is used (6.2.4)."

6.2.4 "The value of a pointer becomes indeterminate when the object it points to reaches the end of its lifetime."

The only thing I can think of is that it allows the compiler to recycle the storage occupied by the pointer itself for something else after free() is called, but I don't see much value(!) in that either, given that if it could do variable lifetime analysis, it would be able to do it for pointers too.

1 comments

This and Annex J.2 Undefined Behavior and Annex L.3 Analyzability Requirements both also specifically include: "The value of a pointer that refers to space deallocated by a call to the free or realloc function is used (7.22.3)."