This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin 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]

gcc version 2.95.3-5: assert() does not work as expected


Dear maintainers,

Please consider the following bug:

Problem:
assert does not work as written in the manual

symptom:
If I register a signal handler for SIGABRT it does not get called by assert

As the man pages claim:
assert(3)
        When expression evaluates to false  (zero),  assert  calls
        abort,  after first printing a message showing what failed
        and where:
and
abort(3)
        Before  terminating  your program, abort raises the excep-
        tion SIGABRT (using ` raise(SIGABRT)').  If you have  used
        signal  to  register  an exception handler for this condi-
        tion, that handler has the opportunity to retain  control,
        thereby avoiding program termination.

therefore assert should go trough the signal handler if it evaluated FALSE.

This indeed happens in Unix and in linux

The problem can be reproduced compiling the enclosed main.cc file

The problem was experimented under windows 98 running
gcc version 2.95.3-5 (cygwin special) (more details in the enclosed 
cygcheck.out
file)

Regards,
	Fabio Torrisi

Attachment: main.cc
Description: Text document

Attachment: cygcheck.out
Description: Text document

---
Fabio D. Torrisi http://www.aut.ee.ethz.ch/~torrisi
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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