| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # Normally we ignore sanitizer false positives via suppressions lists, but UBSan |
| # suppressions can only be applied to recoverable checks, and we force all checks |
| # to be non-recoverable so that the process aborts and the test fails. Blacklists, |
| # which are applied at compile time, do correctly ignore non-recoverable errors. |
| # |
| # The syntax of this file is described in the UBSan documentation: |
| # https://clang.llvm.org/docs/SanitizerSpecialCaseList.html |
| # |
| # Note: when adding entries to this list, cmake will not recognize that it |
| # needs to completely rebuild everything, so a 'make clean' or equivalent is |
| # necessary. |
| |
| # libstdc++'s mersenne twister implementation has an unsigned-integer overflow: |
| # include/c++/4.9.2/bits/random.tcc:416:33: runtime error: unsigned integer overflow: 397 - 624 cannot be represented in type 'unsigned long' |
| fun:*mersenne_twister_engine* |
| |
| # Boost has multiple unsigned-integer overflows: |
| # include/boost/uuid/sha1.hpp:171:43: runtime error: unsigned integer overflow: 3903086636 + 2562383102 cannot be represented in type 'unsigned int' |
| src:*/boost/uuid/sha1.hpp |
| # include/boost/container/detail/copy_move_algo.hpp:949:11: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned long' |
| src:*/boost/container/detail/copy_move_algo.hpp |
| # include/boost/container_hash/hash.hpp:343:15: runtime error: unsigned integer overflow: 2700868258 * 14313749767032793493 cannot be represented in type 'unsigned long' |
| src:*/boost/container_hash/hash.hpp |
| # include/boost/functional/hash/hash.hpp:212:52: runtime error: unsigned integer overflow: 18389307270159922987 + 1512985112272252029 cannot be represented in type 'unsigned long' |
| src:*/boost/functional/hash/hash.hpp |
| |
| # Protobuf's coded output stream and hash implementations have unsigned-integer overflows: |
| # include/google/protobuf/io/coded_stream.h:925:61: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int' |
| # include/google/protobuf/stubs/hash.h:353:18: runtime error: unsigned integer overflow: 5 * 5697019175939388048 cannot be represented in type 'unsigned long' |
| # include/google/protobuf/map.h:951:21: runtime error: unsigned integer overflow: 11400714819323198485 * 6142505534017268963 cannot be represented in type 'unsigned long' |
| # include/google/protobuf/parse_context.h:191:57: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int' |
| src:*/google/protobuf/io/coded_stream.h |
| src:*/google/protobuf/stubs/hash.h |
| src:*/google/protobuf/map.h |
| src:*/google/protobuf/parse_context.h |
| |
| # Sparsepp has an unsigned-integer negation overflow: |
| # /include/sparsepp/spp.h:1196:20: runtime error: negation of 8192 cannot be represented in type 'group_bm_type' (aka 'unsigned int') |
| src:*/sparsepp/spp.h |
| |
| # libstdc++'s basic_string implementation has unsigned-integer overflows |
| # bits/basic_string.h:392:51: runtime error: unsigned integer overflow: 4 - 17 cannot be represented in type 'unsigned long' |
| # bits/basic_string.tcc:1271:25: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned long' |
| src:*/bits/basic_string.h |
| src:*/bits/basic_string.tcc |