@@ -106,6 +106,7 @@ struct PrintingPolicy {
106
106
// / declaration for "x", so that we will print "int *x"; it will be
107
107
// / \c true when we print "y", so that we suppress printing the
108
108
// / "const int" type specifier and instead only print the "*y".
109
+ LLVM_PREFERRED_TYPE (bool )
109
110
unsigned SuppressSpecifiers : 1;
110
111
111
112
// / Whether type printing should skip printing the tag keyword.
@@ -116,6 +117,7 @@ struct PrintingPolicy {
116
117
// / \code
117
118
// / struct Geometry::Point;
118
119
// / \endcode
120
+ LLVM_PREFERRED_TYPE (bool )
119
121
unsigned SuppressTagKeyword : 1;
120
122
121
123
// / When true, include the body of a tag definition.
@@ -126,22 +128,27 @@ struct PrintingPolicy {
126
128
// / \code
127
129
// / typedef struct { int x, y; } Point;
128
130
// / \endcode
131
+ LLVM_PREFERRED_TYPE (bool )
129
132
unsigned IncludeTagDefinition : 1;
130
133
131
134
// / Suppresses printing of scope specifiers.
135
+ LLVM_PREFERRED_TYPE (bool )
132
136
unsigned SuppressScope : 1;
133
137
134
138
// / Suppress printing parts of scope specifiers that are never
135
139
// / written, e.g., for anonymous namespaces.
140
+ LLVM_PREFERRED_TYPE (bool )
136
141
unsigned SuppressUnwrittenScope : 1;
137
142
138
143
// / Suppress printing parts of scope specifiers that correspond
139
144
// / to inline namespaces, where the name is unambiguous with the specifier
140
145
// / removed.
146
+ LLVM_PREFERRED_TYPE (bool )
141
147
unsigned SuppressInlineNamespace : 1;
142
148
143
149
// / Ignore qualifiers and tag keywords as specified by elaborated type sugar,
144
150
// / instead letting the underlying type print as normal.
151
+ LLVM_PREFERRED_TYPE (bool )
145
152
unsigned SuppressElaboration : 1;
146
153
147
154
// / Suppress printing of variable initializers.
@@ -155,6 +162,7 @@ struct PrintingPolicy {
155
162
// /
156
163
// / SuppressInitializers will be true when printing "auto x", so that the
157
164
// / internal initializer constructed for x will not be printed.
165
+ LLVM_PREFERRED_TYPE (bool )
158
166
unsigned SuppressInitializers : 1;
159
167
160
168
// / Whether we should print the sizes of constant array expressions as written
@@ -173,81 +181,101 @@ struct PrintingPolicy {
173
181
// / int a[104];
174
182
// / char a[9] = "A string";
175
183
// / \endcode
184
+ LLVM_PREFERRED_TYPE (bool )
176
185
unsigned ConstantArraySizeAsWritten : 1;
177
186
178
187
// / When printing an anonymous tag name, also print the location of that
179
188
// / entity (e.g., "enum <anonymous at t.h:10:5>"). Otherwise, just prints
180
189
// / "(anonymous)" for the name.
190
+ LLVM_PREFERRED_TYPE (bool )
181
191
unsigned AnonymousTagLocations : 1;
182
192
183
193
// / When true, suppress printing of the __strong lifetime qualifier in ARC.
194
+ LLVM_PREFERRED_TYPE (bool )
184
195
unsigned SuppressStrongLifetime : 1;
185
196
186
197
// / When true, suppress printing of lifetime qualifier in ARC.
198
+ LLVM_PREFERRED_TYPE (bool )
187
199
unsigned SuppressLifetimeQualifiers : 1;
188
200
189
201
// / When true, suppresses printing template arguments in names of C++
190
202
// / constructors.
203
+ LLVM_PREFERRED_TYPE (bool )
191
204
unsigned SuppressTemplateArgsInCXXConstructors : 1;
192
205
193
206
// / When true, attempt to suppress template arguments that match the default
194
207
// / argument for the parameter.
208
+ LLVM_PREFERRED_TYPE (bool )
195
209
unsigned SuppressDefaultTemplateArgs : 1;
196
210
197
211
// / Whether we can use 'bool' rather than '_Bool' (even if the language
198
212
// / doesn't actually have 'bool', because, e.g., it is defined as a macro).
213
+ LLVM_PREFERRED_TYPE (bool )
199
214
unsigned Bool : 1;
200
215
201
216
// / Whether we should use 'nullptr' rather than '0' as a null pointer
202
217
// / constant.
218
+ LLVM_PREFERRED_TYPE (bool )
203
219
unsigned Nullptr : 1;
204
220
205
221
// / Whether 'nullptr_t' is in namespace 'std' or not.
222
+ LLVM_PREFERRED_TYPE (bool )
206
223
unsigned NullptrTypeInNamespace : 1;
207
224
208
225
// / Whether we can use 'restrict' rather than '__restrict'.
226
+ LLVM_PREFERRED_TYPE (bool )
209
227
unsigned Restrict : 1;
210
228
211
229
// / Whether we can use 'alignof' rather than '__alignof'.
230
+ LLVM_PREFERRED_TYPE (bool )
212
231
unsigned Alignof : 1;
213
232
214
233
// / Whether we can use '_Alignof' rather than '__alignof'.
234
+ LLVM_PREFERRED_TYPE (bool )
215
235
unsigned UnderscoreAlignof : 1;
216
236
217
237
// / Whether we should use '(void)' rather than '()' for a function prototype
218
238
// / with zero parameters.
239
+ LLVM_PREFERRED_TYPE (bool )
219
240
unsigned UseVoidForZeroParams : 1;
220
241
221
242
// / Whether nested templates must be closed like 'a\<b\<c\> \>' rather than
222
243
// / 'a\<b\<c\>\>'.
244
+ LLVM_PREFERRED_TYPE (bool )
223
245
unsigned SplitTemplateClosers : 1;
224
246
225
247
// / Provide a 'terse' output.
226
248
// /
227
249
// / For example, in this mode we don't print function bodies, class members,
228
250
// / declarations inside namespaces etc. Effectively, this should print
229
251
// / only the requested declaration.
252
+ LLVM_PREFERRED_TYPE (bool )
230
253
unsigned TerseOutput : 1;
231
254
232
255
// / When true, do certain refinement needed for producing proper declaration
233
256
// / tag; such as, do not print attributes attached to the declaration.
234
257
// /
258
+ LLVM_PREFERRED_TYPE (bool )
235
259
unsigned PolishForDeclaration : 1;
236
260
237
261
// / When true, print the half-precision floating-point type as 'half'
238
262
// / instead of '__fp16'
263
+ LLVM_PREFERRED_TYPE (bool )
239
264
unsigned Half : 1;
240
265
241
266
// / When true, print the built-in wchar_t type as __wchar_t. For use in
242
267
// / Microsoft mode when wchar_t is not available.
268
+ LLVM_PREFERRED_TYPE (bool )
243
269
unsigned MSWChar : 1;
244
270
245
271
// / When true, include newlines after statements like "break", etc.
272
+ LLVM_PREFERRED_TYPE (bool )
246
273
unsigned IncludeNewlines : 1;
247
274
248
275
// / Use whitespace and punctuation like MSVC does. In particular, this prints
249
276
// / anonymous namespaces as `anonymous namespace' and does not insert spaces
250
277
// / after template arguments.
278
+ LLVM_PREFERRED_TYPE (bool )
251
279
unsigned MSVCFormatting : 1;
252
280
253
281
// / Whether we should print the constant expressions as written in the
@@ -266,42 +294,52 @@ struct PrintingPolicy {
266
294
// / 0x10
267
295
// / 2.5e3
268
296
// / \endcode
297
+ LLVM_PREFERRED_TYPE (bool )
269
298
unsigned ConstantsAsWritten : 1;
270
299
271
300
// / When true, don't print the implicit 'self' or 'this' expressions.
301
+ LLVM_PREFERRED_TYPE (bool )
272
302
unsigned SuppressImplicitBase : 1;
273
303
274
304
// / When true, print the fully qualified name of function declarations.
275
305
// / This is the opposite of SuppressScope and thus overrules it.
306
+ LLVM_PREFERRED_TYPE (bool )
276
307
unsigned FullyQualifiedName : 1;
277
308
278
309
// / Whether to print types as written or canonically.
310
+ LLVM_PREFERRED_TYPE (bool )
279
311
unsigned PrintCanonicalTypes : 1;
280
312
281
313
// / Whether to print an InjectedClassNameType with template arguments or as
282
314
// / written. When a template argument is unnamed, printing it results in
283
315
// / invalid C++ code.
316
+ LLVM_PREFERRED_TYPE (bool )
284
317
unsigned PrintInjectedClassNameWithArguments : 1;
285
318
286
319
// / Whether to use C++ template preferred_name attributes when printing
287
320
// / templates.
321
+ LLVM_PREFERRED_TYPE (bool )
288
322
unsigned UsePreferredNames : 1;
289
323
290
324
// / Whether to use type suffixes (eg: 1U) on integral non-type template
291
325
// / parameters.
326
+ LLVM_PREFERRED_TYPE (bool )
292
327
unsigned AlwaysIncludeTypeForTemplateArgument : 1;
293
328
294
329
// / Whether to strip underscores when printing reserved parameter names.
295
330
// / e.g. std::vector<class _Tp> becomes std::vector<class Tp>.
296
331
// / This only affects parameter names, and so describes a compatible API.
332
+ LLVM_PREFERRED_TYPE (bool )
297
333
unsigned CleanUglifiedParameters : 1;
298
334
299
335
// / Whether to print the entire array initializers, especially on non-type
300
336
// / template parameters, no matter how many elements there are.
337
+ LLVM_PREFERRED_TYPE (bool )
301
338
unsigned EntireContentsOfLargeArray : 1;
302
339
303
340
// / Whether to print enumerator non-type template parameters with a matching
304
341
// / enumerator name or via cast of an integer.
342
+ LLVM_PREFERRED_TYPE (bool )
305
343
unsigned UseEnumerators : 1;
306
344
307
345
// / Callbacks to use to allow the behavior of printing to be customized.
0 commit comments