On Sat, Dec 16, 2017 at 3:28 PM, Jeffrey Walton <noloader@xxxxxxxxx> wrote: > Hi Everyone, > > I'm looking for a source-level method to tell UBsan to ignore a > function that is producing a finding. We are pretty sure it is a false > positive so we want UBsan to skip analysis of the function. > > We want source-level because it is a lot easier for us to make the > change in one place and document it. Otherwise, a whitelist using a > separate file will cause a lot of work for us and downstream. Lots of > build systems will need to be modified to accommodate the recipe > changes. > > With Memory Sanitizer we can do something like: > > #if __has_feature(memory_sanitizer) > # define MSAN_AVAILABLE 1 > #endif > > # ifdef MSAN_AVAILABLE > __msan_unpoison(&m_readfds, sizeof(m_readfds)); > __msan_unpoison(&m_writefds, sizeof(m_writefds)); > # endif > > How can we do similar with UBSan? > There is a function attribute "no_sanitize_undefined": https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes -- Regards, Mikhail Maltsev