21#define ___PW_MUST_PLACE(isection, start_sym, end_sym) \
25 ASSERT(start_sym != end_sym, \
26 "Error: No symbols found in pattern below"); \
27 ASSERT(start_sym != end_sym, #isection)
29#define __PW_MUST_PLACE(isection, sym_prefix, unique) \
30 ___PW_MUST_PLACE(isection, sym_prefix ## start_ ## unique, sym_prefix ## end_ ## unique)
32#define _PW_MUST_PLACE(isection, sym_prefix, unique) \
33 __PW_MUST_PLACE(isection, sym_prefix, unique)
79#define PW_MUST_PLACE(isection) \
80 _PW_MUST_PLACE(isection, __section_place_, __COUNTER__)
89#define ___PW_MUST_PLACE_SIZE(isection, isize, start_sym, end_sym) \
93 ASSERT(end_sym - start_sym == isize , \
94 "Error: Pattern did not match expected size"); \
95 ASSERT(end_sym - start_sym == isize, #isection)
97#define __PW_MUST_PLACE_SIZE(isection, isize, sym_prefix, unique) \
98 ___PW_MUST_PLACE_SIZE(isection, isize, sym_prefix ## start_ ## unique, sym_prefix ## end_ ## unique)
100#define _PW_MUST_PLACE_SIZE(isection, isize, sym_prefix, unique) \
101 __PW_MUST_PLACE_SIZE(isection, isize, sym_prefix, unique)
150#define PW_MUST_PLACE_SIZE(isection, isize) \
151 _PW_MUST_PLACE_SIZE(isection, isize, __section_place_, __COUNTER__)
160#define ___PW_MUST_NOT_PLACE(isection, start_sym, end_sym) \
164 ASSERT(start_sym == end_sym, \
165 "Error: Symbols found in pattern below but marked as must not place."); \
166 ASSERT(start_sym == end_sym, #isection)
168#define __PW_MUST_NOT_PLACE(isection, sym_prefix, unique) \
169 ___PW_MUST_NOT_PLACE(isection, sym_prefix ## start_ ## unique, sym_prefix ## end_ ## unique)
171#define _PW_MUST_NOT_PLACE(isection, sym_prefix, unique) \
172 __PW_MUST_NOT_PLACE(isection, sym_prefix, unique)
194#define PW_MUST_NOT_PLACE(isection) \
195 _PW_MUST_NOT_PLACE(isection, __section_not_place_, __COUNTER__)