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 @@ ...@@ -90,10 +90,10 @@
* used as folly whitelists some functions. * used as folly whitelists some functions.
*/ */
#if UNDEFINED_SANITIZER #if UNDEFINED_SANITIZER
# define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(x) \ #define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(...) \
__attribute__((no_sanitize(x))) __attribute__((no_sanitize(__VA_ARGS__)))
#else #else
# define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(x) #define FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(...)
#endif // UNDEFINED_SANITIZER #endif // UNDEFINED_SANITIZER
/** /**
......
...@@ -245,9 +245,9 @@ class Histogram { ...@@ -245,9 +245,9 @@ class Histogram {
: buckets_(bucketSize, min, max, Bucket()) {} : buckets_(bucketSize, min, max, Bucket()) {}
/* Add a data point to the histogram */ /* Add a data point to the histogram */
void addValue(ValueType value) void addValue(ValueType value) FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("signed-integer-overflow") "signed-integer-overflow",
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("unsigned-integer-overflow") { "unsigned-integer-overflow") {
Bucket& bucket = buckets_.getByValue(value); Bucket& bucket = buckets_.getByValue(value);
// NOTE: Overflow is handled elsewhere and tests check this // NOTE: Overflow is handled elsewhere and tests check this
// behavior (see HistogramTest.cpp TestOverflow* tests). // behavior (see HistogramTest.cpp TestOverflow* tests).
...@@ -258,8 +258,9 @@ class Histogram { ...@@ -258,8 +258,9 @@ class Histogram {
/* Add multiple same data points to the histogram */ /* Add multiple same data points to the histogram */
void addRepeatedValue(ValueType value, uint64_t nSamples) void addRepeatedValue(ValueType value, uint64_t nSamples)
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("signed-integer-overflow") FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("unsigned-integer-overflow") { "signed-integer-overflow",
"unsigned-integer-overflow") {
Bucket& bucket = buckets_.getByValue(value); Bucket& bucket = buckets_.getByValue(value);
// NOTE: Overflow is handled elsewhere and tests check this // NOTE: Overflow is handled elsewhere and tests check this
// behavior (see HistogramTest.cpp TestOverflow* tests). // behavior (see HistogramTest.cpp TestOverflow* tests).
...@@ -276,8 +277,8 @@ class Histogram { ...@@ -276,8 +277,8 @@ class Histogram {
* requested value from the appropriate bucket's sum. * requested value from the appropriate bucket's sum.
*/ */
void removeValue(ValueType value) FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER( void removeValue(ValueType value) FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER(
"signed-integer-overflow") "signed-integer-overflow",
FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER("unsigned-integer-overflow") { "unsigned-integer-overflow") {
Bucket& bucket = buckets_.getByValue(value); Bucket& bucket = buckets_.getByValue(value);
// NOTE: Overflow is handled elsewhere and tests check this // NOTE: Overflow is handled elsewhere and tests check this
// behavior (see HistogramTest.cpp TestOverflow* tests). // 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