Clang sanitizer blacklist format?

Hi All,

I'm catching lots of these (in the hundreds). I'm fairly certain its
little more than `cout << std::hex`.

0x00010dd6589b: runtime error: load of value 4294967221, which is not
a valid value for type 'std::_Ios_Fmtflags'
e8 e4 90 65 00 e9 de fd ff ff 4c 89 ff e8 f9 f7 65 00 48 8d 3d f0
5f a6 00 4c 89 fe e8 88 6f 65

The problem appears to be with libstdc++, and a patch was prepared at
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027401.html.

Until the update is available, I'd like to use a blacklist to suppress
the finding. The sanitizer blacklist was added at
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20121126/068959.html.

Can we create the blacklist file and fill it with functions like
'std::_Ios_Fmtflags', with on per line? Or does it need a tuple with
<sanitizer>:std::_Ios_Fmtflags? If so, how can we determine which
sanitizer is producing the finding when multiple sanitizers are used
(I believe its -fsanitize=undefined)?

To summarize, what is the format of the blacklist file?

Jeff

I don't have an answer, but see you are going down a similar path to me, when I passed the sanitizers over our 3rd party dependencies. Other things on OS X you may want to blacklist:

rdar://14095332
__darwin_fd_isset macro in _structs.h performs undefined left shift

rdar://12388003
readdir() invokes undefined behaviour, returns misaligned memory
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-September/024522.html

Cheers,

I'm catching lots of these (in the hundreds). I'm fairly certain its
little more than `cout << std::hex`.

0x00010dd6589b: runtime error: load of value 4294967221, which is not
a valid value for type 'std::_Ios_Fmtflags'
e8 e4 90 65 00 e9 de fd ff ff 4c 89 ff e8 f9 f7 65 00 48 8d 3d f0
5f a6 00 4c 89 fe e8 88 6f 65

The blacklist worked great with:

    -fsanitize-blacklist=my_ignores.txt

It needed one entry:

    fun:_Ios_Fmtflags

This is the only place I've been able to find docs on the blacklist
and its format, though:
http://code.google.com/p/address-sanitizer/wiki/AddressSanitizer.

Jeff

There is more documentation coming soon (Alexey has been on vacation): <
http://thread.gmane.org/gmane.comp.compilers.clang.scm/62388>.

-- Sean Silva