From: Sergey Doroshenko Date: Mon, 4 May 2015 19:32:52 +0000 (-0700) Subject: Move FOLLY_DISABLE_ADDRESS_SANITIZER from Fiber::init()'s definition to declaration X-Git-Tag: v0.38.0~12 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e2e4c525b587d1c295fc8e7578ec073c79123a63;p=folly.git Move FOLLY_DISABLE_ADDRESS_SANITIZER from Fiber::init()'s definition to declaration 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 --- diff --git a/folly/experimental/fibers/Fiber.cpp b/folly/experimental/fibers/Fiber.cpp index 3b5e01c8..19d4b198 100644 --- a/folly/experimental/fibers/Fiber.cpp +++ b/folly/experimental/fibers/Fiber.cpp @@ -23,7 +23,6 @@ #include #include -#include #include #include #include @@ -78,8 +77,6 @@ Fiber::Fiber(FiberManager& fiberManager) : 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_)) { diff --git a/folly/experimental/fibers/Fiber.h b/folly/experimental/fibers/Fiber.h index 2c56efa9..b0b63b6f 100644 --- a/folly/experimental/fibers/Fiber.h +++ b/folly/experimental/fibers/Fiber.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -69,7 +70,9 @@ class Fiber { 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 void setFunction(F&& func);