This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: telling GCC that a pointer cannot be NULL


Igor Bukanov <igor@mir2.org> writes:

> is it possible to tell GCC that a pointer cannot be NULL at a
> particular point so the compiler can optimize the control flaw better
> and avoid redundant NULL checks on the fast paths?

As of gcc 4.5 you can do this using __builtin_unreachable.

In your example:

    if (n != a->end) {
        a->start += 16; /* size of the thing to allocate. */
	if (n == 0)
	  __builtin_unreachable();
        return n; /* n cannot be NULL here */
    }

Use this with care.  If you get it wrong, the results will be wholly
unpredictable.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]