1 /* Copyright 2012-present Facebook, Inc. 2 * Licensed under the Apache License, Version 2.0 */ 3 #pragma once 4 5 // Helpers for pasting __LINE__ for symbol generation 6 #define w_paste2(pre, post) pre##post 7 #define w_paste1(pre, post) w_paste2(pre, post) 8 #define w_gen_symbol(pre) w_paste1(pre, __LINE__) 9 10 #ifndef WATCHMAN_FMT_STRING 11 #define WATCHMAN_FMT_STRING(x) x 12 #endif 13 14 #ifdef __GNUC__ 15 #define WATCHMAN_FMT_ATTR(fmt_param_no, dots_param_no) \ 16 __attribute__((__format__(__printf__, fmt_param_no, dots_param_no))) 17 #endif 18 19 #ifndef WATCHMAN_FMT_ATTR 20 #define WATCHMAN_FMT_ATTR(fmt_param_no, dots_param_no) /* nothing */ 21 #endif 22