Commit 404a98c4 authored by Tianjiao Yin's avatar Tianjiao Yin Committed by Facebook Github Bot

fix incorrect usage of FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER in folly::Histogram

Summary: According to [clang documentation](http://clang.llvm.org/docs/AttributeReference.html#no-sanitize-clang-no-sanitize), the format is incorrect. This results unit-test failure with ubsan.

Reviewed By: yfeldblum

Differential Revision: D4901777

fbshipit-source-id: e9d012366c5e1911632e47fa4fb690820b761fc3
parent b5737d0b
......@@ -90,10 +90,10 @@
* used as folly whitelists some functions.
*/
#if UNDEFINED_SANITIZER
# define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(x) \
__attribute__((no_sanitize(x)))
#define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(...) \
__attribute__((no_sanitize(__VA_ARGS__)))
#else
# define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(x)
#define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(...)
#endif // UNDEFINED_SANITIZER
/**
......
......@@ -245,9 +245,9 @@ class Histogram {
: buckets_(bucketSize, min, max, Bucket()) {}
/* Add a data point to the histogram */
void addValue(ValueType value)
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("signed-integer-overflow")
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("unsigned-integer-overflow") {
void addValue(ValueType value) FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(
"signed-integer-overflow",
"unsigned-integer-overflow") {
Bucket& bucket = buckets_.getByValue(value);
// NOTE: Overflow is handled elsewhere and tests check this
// behavior (see HistogramTest.cpp TestOverflow* tests).
......@@ -258,8 +258,9 @@ class Histogram {
/* Add multiple same data points to the histogram */
void addRepeatedValue(ValueType value, uint64_t nSamples)
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("signed-integer-overflow")
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("unsigned-integer-overflow") {
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(
"signed-integer-overflow",
"unsigned-integer-overflow") {
Bucket& bucket = buckets_.getByValue(value);
// NOTE: Overflow is handled elsewhere and tests check this
// behavior (see HistogramTest.cpp TestOverflow* tests).
......@@ -276,8 +277,8 @@ class Histogram {
* requested value from the appropriate bucket's sum.
*/
void removeValue(ValueType value) FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(
"signed-integer-overflow")
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("unsigned-integer-overflow") {
"signed-integer-overflow",
"unsigned-integer-overflow") {
Bucket& bucket = buckets_.getByValue(value);
// NOTE: Overflow is handled elsewhere and tests check this
// behavior (see HistogramTest.cpp TestOverflow* tests).
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment