Fix Build: folly after replacing FOLLY_NORETURN
Summary:[Folly] Fix Build: `folly` after replacing `FOLLY_NORETURN`. Problem 1: * Clang does not treat `[[noreturn]]` and `__attribute__((__noreturn__))` as the same attribute. When a function is declared twice with the noreturn attribute, both declarations must use either the one syntax or the other; Clang fails if the two declarations mix-and-match. When both `folly/detail/FunctionalExcept.h` and gcc49's `bits/functexcept.h` are both included from the same source, they (now) mix-and-match the attribute syntaxes and Clang emits an error. * `folly/detail/FunctionalExcept.h` should be included only when `bits/functexcept.h` is unavailable - somehow, both headers were being included. We fix the latter problem and keep our `[[noreturn]]` syntax. Found from WDT build failures in Travis CI. Reviewed By: ldemailly Differential Revision: D3089987 fb-gh-sync-id: 705a087fc2a9629739d6cedd8315d56111204e6d shipit-source-id: 705a087fc2a9629739d6cedd8315d56111204e6d
Showing
Please register or sign in to comment