This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc 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: __assert_fail should not be __attribute__((__noreturn__))


On Tue, Apr 06, 2004 at 08:27:05PM +0200, Johannes Sixt wrote:
> On Dienstag, 6. April 2004 05:51, Richard Henderson wrote:
> > On Mon, Apr 05, 2004 at 09:23:17PM +0200, Johannes Sixt wrote:
> > > These optimization opportunities are only available if assert() is used,
> > > but NDEBUG is _not_ used. That is, the optimzed code is payed with the
> > > runtime needed to evaluate the condition.
> >
> > For now, with gcc.  Other compilers arrange for assert with NDEBUG
> > to expand to something that generates no code, yet provides the
> > compiler with the same information.  GCC may eventually do something
> > similar.
> 
> That's great.
> 
> But I am interested in the case where NDEBUG is _not_ used.
> 
> I assume the following:
> 
> - Developers know that assert() without NDEBUG produces slower code (because 
> the condition must be evaluated).
> - They use NDEBUG when they compile production code.
> 
> What is wrong with these assumptions?

Many people never use NDEBUG, and the assertions remain useful.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


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