[cfe-dev] recent change broke -fcatch-undefined-behavior

Sean McBride sean at rogue-research.com
Fri Nov 23 13:40:57 PST 2012

On Fri, 23 Nov 2012 18:11:45 +0100, Jean-Daniel Dupas said:

>As I said previously, this issue is due to missing symbols in darwin's C+
>+ libs. I don't think there is an easy way to fix this. Apple should
>update libc++abi and libc++ to fix this issue (the LLVM libc++abi
>library already does it, and a fix is already present in libc++ but is
>explicitly disabled: lib/libc++abi2.exp).

Anyone have a bug number for this?

>IMHO, the best option right now is to disable this sanitizer in the
>driver when targeting darwin (maybe emitting a warning if it is
>explicitly required using 'vptr' an not implicitly defined using 'undefined').

OK, I'll give up on that one for now.

I'm seeing some other weirdness with -fsanitize=float-cast-overflow:

<unknown>: fatal error: value 255 is outside the range of representable values of type 'unsigned char'

hmmm, could there be an off-by-one error in the check here?

<unknown>: fatal error: value nan is outside the range of representable values of type 'double'

What is this telling me?  I'm no language lawyer, but doubles can encode nan as far as I know.

Also, is there something like -fdiagnostics-show-option that would show the exact check that caused the error message?  It wasn't immediately obvious to me that these (the former especially) was related to 'float-cast-overflow'.


Sean McBride, B. Eng                 sean at rogue-research.com
Rogue Research                        www.rogue-research.com 
Mac Software Developer              Montréal, Québec, Canada

More information about the cfe-dev mailing list