OK, I'll do.
Must be at least somewhat Cygwin specific. Clang on i686 Linux
generates exception handling code properly (tested with clang 2.9 on
Debian).
I have vague memories that Clang doesn't support SJLJ exceptions, and
further vague memories that Cygwin favors SJLJ because dwarf exceptions
interact badly with The Windows Way of doing things. That could be your
problem, assuming my vague memories aren't completely out of date.
Either way, tho, it's a bit strange that the compiler doesn't squawk at
you. Clang prides itself on having good diagnostics, and it's not
exactly a small semantic change to silently replace throw with abort().
Ryan