Summary:
I just had topaggr built from trunk crash with https://phabricator.fb.com/P19825084. It seems that
placing `FOLLY_DISABLE_ADDRESS_SANITIZER` next to the function definition has no effect. Though
what's strange, https://phabricator.fb.com/
D2036280 test plan says the false-positive crashes
stopped after that diff. Have we run the tao script on the latest revisions of that diff? Anyway,
clang/gcc docs clearly say the attributes belong to declarations, not definitions, so let's do that.
Test Plan:
Compiled, unit tests.
Reviewed By: aap@fb.com
Subscribers: folly-diffs@, yfeldblum, chalfant, soren
FB internal diff:
D2042149
Signature: t1:
2042149:
1430681824:
aea21b9a1fcddfd5585180ba7f526c3a6ee0c8bf
#include <cstring>
#include <stdexcept>
-#include <folly/CPortability.h>
#include <folly/Likely.h>
#include <folly/Portability.h>
#include <folly/experimental/fibers/BoostContextCompatibility.h>
fcontext_ = makeContext(limit, size, &Fiber::fiberFuncHelper);
}
-// It is necessary to disable ASAN because this function changes fiber's stack.
-FOLLY_DISABLE_ADDRESS_SANITIZER
void Fiber::init(bool recordStackUsed) {
recordStackUsed_ = recordStackUsed;
if (UNLIKELY(recordStackUsed_ && !stackFilledWithMagic_)) {
#include <boost/context/all.hpp>
#include <boost/version.hpp>
#include <folly/AtomicLinkedList.h>
+#include <folly/CPortability.h>
#include <folly/IntrusiveList.h>
#include <folly/experimental/fibers/BoostContextCompatibility.h>
friend class FiberManager;
explicit Fiber(FiberManager& fiberManager);
- void init(bool recordStackUsed);
+
+ // It is necessary to disable ASAN because init() changes the fiber's stack.
+ void init(bool recordStackUsed) FOLLY_DISABLE_ADDRESS_SANITIZER;
template <typename F>
void setFunction(F&& func);