Gavin Lambert wrote:
> At 13:05 24/09/2009, Jim Idle wrote:
>>Some platforms define this to be undefined though. Remember there
>>are lots if embedded systems that use this. Hence the qualification.
>>I think it would have been better to define free(NULL) as safe
>>myself but early Lib C would crash if you did this and I think it
>>was C++ that first took a stand?
> 
> I haven't looked at the standards recently, but from what I recall
> "delete NULL;" is guaranteed safe but "free(NULL);" wasn't.

C89 clause 4.10.3.2:

# The free function causes the space pointed to by ptr to be
# deallocated, that is, made available for further allocation.
# If ptr is a null pointer, no action occurs. [...]

(This is the same in C89 and C99; in the latter it is clause 7.20.3.2.)

> I definitely recall seeing some static testers and malloc replacements
> (some for performance, some for allocation debugging) that reacted badly
> to use of "free(NULL);" (sometimes just a failed assertion, sometimes
> worse).

That would be a bug. C89 is 20 years old; there's really no excuse for
writers of testers and malloc replacements not to have read the sections
of it that directly apply to them.

-- 
David-Sarah Hopwood  ⚥  http://davidsarah.livejournal.com


List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to il-antlr-interest@googlegroups.com
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to