|
From: | Leo Liu |
Subject: | Some #define .... in C not recognised as definition |
Date: | Mon, 24 Feb 2014 14:56:17 +0800 |
User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/24.3 (OS X 10.9.1) |
For example https://github.com/erlang/otp/blob/maint/erts/emulator/beam/erl_term.h#L311 #define is_arity_value(x) (((x) & _TAG_HEADER_MASK) == _TAG_HEADER_ARITYVAL) is_arity_value is not recognised as definition but but the next line: #define is_sane_arity_value(x) ((((x) & _TAG_HEADER_MASK) == _TAG_HEADER_ARITYVAL) && \ (((x) >> _HEADER_ARITY_OFFS) <= MAX_ARITYVAL)) is_sane_arity_value is recognised as definition. To demonstrate: $ global -x "is_arity_value" [no output] $ global -x "is_sane_arity_value" is_sane_arity_value 314 erl_term.h #define is_sane_arity_value(x) ((((x) & _TAG_HEADER_MASK) == _TAG_HEADER_ARITYVAL) && \ Oddd? Leo [using global from CVS]
[Prev in Thread] | Current Thread | [Next in Thread] |