blob: 7795eb1bef52e2c572a165f277eeabbcf32785df [file] [log] [blame]
# 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.
# This file suppresses UBSAN errors, following
# http://releases.llvm.org/3.8.0/tools/clang/docs/UndefinedBehaviorSanitizer.html#runtime-suppressions
# Some methods in ios_base.h (libstdc++ 4.9.2) mask two values a and b of an enum type to
# create the logical equivalent of (a and (not b)) using the expression 'a & ~b'. When ~b
# is not a valid enum member (and it usually isn't), this causes a UBSAN error. The line
# below suppresses that error.
enum:ios_base.h
# In Thrift 0.9.0 and 0.10.0 there is undefined behavior in TCompactProtocol in which
# negative values are left-shifted. See https://issues.apache.org/jira/browse/THRIFT-2026
shift-base:TCompactProtocol.tcc