This is the mail archive of the gcc@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: Null pointer check elimination


On Saturday 12 November 2005 13:36, Gabriel Dos Reis wrote:

> I'm not convinced.  I believe Per's suggestion is far superior, and
> more general and does cover pretty well the issue at hand.  Plus,
> a pointer-type-without-null is another spelling for reference type.
>
I'm thinking of C here, where we don't have that luxury.  The original RFE 
was in 20318 where they have some C functions that are guaranteed to 
return non-NULL (I'm quoting from memory here):

int *this_never_returns_NULL (void)  __attribute__ ((never_returns_null));

We would not want to pin the never-null attribute to 'int *':

foo()
{
   int *p = this_never_returns_NULL ();
   < ... use p without modifying it ... >	<-- p is never NULL here.	
   p = other_fn ();
   < ... use p without modifying it ... >	<-- p may be NULL here.
}

In languages where you could make the type itself have that guarantee, then 
great, let's use the type attributes.  In type-challenged languages, we 
use whatever we can get our hands on.


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