150 LOG_TAG(stringdedup) \
151 LOG_TAG(stringtable) \
152 LOG_TAG(symboltable) \
153 LOG_TAG(stackmap) \
154 LOG_TAG(subclass) \
155 LOG_TAG(survivor) \
156 LOG_TAG(sweep) \
157 LOG_TAG(system) \
158 LOG_TAG(table) \
159 LOG_TAG(task) \
160 DEBUG_ONLY(LOG_TAG(test)) \
161 LOG_TAG(thread) \
162 LOG_TAG(tlab) \
163 LOG_TAG(time) \
164 LOG_TAG(timer) \
165 LOG_TAG(tracking) \
166 LOG_TAG(update) \
167 LOG_TAG(unload) /* Trace unloading of classes */ \
168 LOG_TAG(unshareable) \
169 LOG_TAG(mirror) \
170 LOG_TAG(verification) \
171 LOG_TAG(verify) \
172 LOG_TAG(vmmonitor) \
173 LOG_TAG(vmoperation) \
174 LOG_TAG(vmthread) \
175 LOG_TAG(vtables) \
176 LOG_TAG(vtablestubs) \
177 LOG_TAG(workgang) \
178 LOG_TAG_LIST_EXT
179
180 #define PREFIX_LOG_TAG(T) (LogTag::_##T)
181
182 // Expand a set of log tags to their prefixed names.
183 // For error detection purposes, the macro passes one more tag than what is supported.
184 // If too many tags are given, a static assert in the log class will fail.
185 #define LOG_TAGS_EXPANDED(T0, T1, T2, T3, T4, T5, ...) PREFIX_LOG_TAG(T0), PREFIX_LOG_TAG(T1), PREFIX_LOG_TAG(T2), \
186 PREFIX_LOG_TAG(T3), PREFIX_LOG_TAG(T4), PREFIX_LOG_TAG(T5)
187 // The EXPAND_VARARGS macro is required for MSVC, or it will resolve the LOG_TAGS_EXPANDED macro incorrectly.
188 #define EXPAND_VARARGS(x) x
189 #define LOG_TAGS(...) EXPAND_VARARGS(LOG_TAGS_EXPANDED(__VA_ARGS__, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG))
|
150 LOG_TAG(stringdedup) \
151 LOG_TAG(stringtable) \
152 LOG_TAG(symboltable) \
153 LOG_TAG(stackmap) \
154 LOG_TAG(subclass) \
155 LOG_TAG(survivor) \
156 LOG_TAG(sweep) \
157 LOG_TAG(system) \
158 LOG_TAG(table) \
159 LOG_TAG(task) \
160 DEBUG_ONLY(LOG_TAG(test)) \
161 LOG_TAG(thread) \
162 LOG_TAG(tlab) \
163 LOG_TAG(time) \
164 LOG_TAG(timer) \
165 LOG_TAG(tracking) \
166 LOG_TAG(update) \
167 LOG_TAG(unload) /* Trace unloading of classes */ \
168 LOG_TAG(unshareable) \
169 LOG_TAG(mirror) \
170 LOG_TAG(valuetypes) \
171 LOG_TAG(verification) \
172 LOG_TAG(verify) \
173 LOG_TAG(vmmonitor) \
174 LOG_TAG(vmoperation) \
175 LOG_TAG(vmthread) \
176 LOG_TAG(vtables) \
177 LOG_TAG(vtablestubs) \
178 LOG_TAG(workgang) \
179 LOG_TAG_LIST_EXT
180
181 #define PREFIX_LOG_TAG(T) (LogTag::_##T)
182
183 // Expand a set of log tags to their prefixed names.
184 // For error detection purposes, the macro passes one more tag than what is supported.
185 // If too many tags are given, a static assert in the log class will fail.
186 #define LOG_TAGS_EXPANDED(T0, T1, T2, T3, T4, T5, ...) PREFIX_LOG_TAG(T0), PREFIX_LOG_TAG(T1), PREFIX_LOG_TAG(T2), \
187 PREFIX_LOG_TAG(T3), PREFIX_LOG_TAG(T4), PREFIX_LOG_TAG(T5)
188 // The EXPAND_VARARGS macro is required for MSVC, or it will resolve the LOG_TAGS_EXPANDED macro incorrectly.
189 #define EXPAND_VARARGS(x) x
190 #define LOG_TAGS(...) EXPAND_VARARGS(LOG_TAGS_EXPANDED(__VA_ARGS__, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG))
|