waitid vs -fexceptions

Richard Henderson rth@twiddle.net
Mon Sep 27 00:15:00 GMT 2004


On alpha, at least, tst-cancelx4 fails with 

  cleanup handler not called for 'waitid'

This happens because the compiler sees that do_waitid makes 
no function calls, and thus "cannot throw".  I *think* that
using -fnon-call-exceptions will let the compiler assume that
volatile asms can trap (and thus throw).  That will, however,
add exception edges for all of the other memory accesses too.

Seems like what's actually needed is an asm annotation that
says that it can throw, but that would require compiler changes.
I'm not sure what else to suggest for the moment, though.


r~



More information about the Libc-alpha mailing list