When using ubsan on an x86 target, specifically when calling find on an unordered_map, unsigned integer overflow is detected and an abort occurs. More specifically, the following snippet illustrates the behavior:
#include <unordered_map>
std::unordered_map<std::string, uint32_t> lookup_table;
...
std::unordered_map<std::string, uint32_t>::const_iterator it = lookup_table.find(item);
The find call eventually calls down to __murmur2_or_cityhash, which contains the benign unsigned integer overflow. Disabling sanitization for this function prevents the abort from occurring.
That's not where I would have expected it to go - I would have thought it should go after the parameter list. See http://clang.llvm.org/docs/AttributeReference.html#function-attributes
But if it works, that's fine.