These are minor nits, but I'll bring them up anyway because as I review these 
changes I keep thinking about them.

If you have a small-codespace target that can togenerate faults on 
low-address-space accesses then these NULL dereferences are going to be caught 
in the exception handler and don't help.  These assertions are adding a 
negligible amount of code overhead to those small-codespace targets.

These changes are losing information about why something is not NULL.  If 
you're inspecting the code and see the _Assert() you think "Why will my system 
go into fail-safe-shutdown in this situation?  Why is this known to be not 
NULL?".

- Could an _Assert_not_NULL() macro be used to eliminate the negligible 
overhead?  It could be defined differently for targets that unmap the bottom of 
memory.

- Could an _Assert_known_not_NULL() macro be used for pointers that are 
absolutely, positively known to be not-NULL but somehow they may be corrupted?  
That preserves information for someone looking at the code in the future.  
Instead of a check-in comment that says "This can't be NULL, it was checked 
before so we can assert this" the reviewer will know it is supposed to have 
been previously checked to be not NULL, so either someone broke the code or 
something corrupted memory.

> On Nov 25, 2014, at 18:02 , Joel Sherrill <joel.sherr...@oarcorp.com> wrote:
> 
> CodeSonar flagged this as a potential NULL deference. That should never
> occur but adding the _Assert() ensures we are checking that.

Peter
-----------------
Peter Dufault
HD Associates, Inc.      Software and System Engineering

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to