このページを編集する際は,編集に関する方針に従ってください.[]
概要[]
実装[]
300 /* The following table lists the uses of each of the above flags and
301 for which types of nodes they are defined. Note that expressions
302 include decls.
303
304 addressable_flag:
305
306 TREE_ADDRESSABLE in
307 VAR_DECL, FUNCTION_DECL, FIELD_DECL, CONSTRUCTOR, LABEL_DECL,
308 ..._TYPE, IDENTIFIER_NODE.
309 In a STMT_EXPR, it means we want the result of the enclosed
310 expression.
311 CALL_EXPR_TAILCALL in CALL_EXPR
312
313 static_flag:
314
315 TREE_STATIC in
316 VAR_DECL, FUNCTION_DECL, CONSTRUCTOR, ADDR_EXPR
317 BINFO_VIRTUAL_P in
318 TREE_BINFO
319 TREE_CONSTANT_OVERFLOW in
320 INTEGER_CST, REAL_CST, COMPLEX_CST, VECTOR_CST
321 TREE_SYMBOL_REFERENCED in
322 IDENTIFIER_NODE
323 CLEANUP_EH_ONLY in
324 TARGET_EXPR, WITH_CLEANUP_EXPR
325 ASM_INPUT_P in
326 ASM_EXPR
327 EH_FILTER_MUST_NOT_THROW in EH_FILTER_EXPR
328 TYPE_REF_CAN_ALIAS_ALL in
329 POINTER_TYPE, REFERENCE_TYPE
330
331 public_flag:
332
333 TREE_OVERFLOW in
334 INTEGER_CST, REAL_CST, COMPLEX_CST, VECTOR_CST
335 ??? and other expressions?
336 TREE_PUBLIC in
337 VAR_DECL or FUNCTION_DECL or IDENTIFIER_NODE
338 ASM_VOLATILE_P in
339 ASM_EXPR
340 TYPE_CACHED_VALUES_P in
341 ..._TYPE
342 SAVE_EXPR_RESOLVED_P in
343 SAVE_EXPR
344
345 private_flag:
346
347 TREE_PRIVATE in
348 ..._DECL
349 CALL_EXPR_RETURN_SLOT_OPT in
350 CALL_EXPR
351 DECL_BY_REFERENCE in
352 PARM_DECL, RESULT_DECL
353
354 protected_flag:
355
356 TREE_PROTECTED in
357 BLOCK
358 ..._DECL
359 CALL_FROM_THUNK_P in
360 CALL_EXPR
361
362 side_effects_flag:
363
364 TREE_SIDE_EFFECTS in
365 all expressions
366 all decls
367 all constants
368
369 FORCED_LABEL in
370 LABEL_DECL
371
372 volatile_flag:
373
374 TREE_THIS_VOLATILE in
375 all expressions
376 TYPE_VOLATILE in
377 ..._TYPE
378
379 readonly_flag:
380
381 TREE_READONLY in
382 all expressions
383 TYPE_READONLY in
384 ..._TYPE
385
386 constant_flag:
387
388 TREE_CONSTANT in
389 all expressions
390 all decls
391 all constants
392 TYPE_SIZES_GIMPLIFIED
393 ..._TYPE
394
395 unsigned_flag:
396
397 TYPE_UNSIGNED in
398 all types
399 DECL_UNSIGNED in
400 all decls
401 BIT_FIELD_REF_UNSIGNED in
402 BIT_FIELD_REF
403
404 asm_written_flag:
405
406 TREE_ASM_WRITTEN in
407 VAR_DECL, FUNCTION_DECL, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
408 BLOCK, SSA_NAME
409
410 used_flag:
411
412 TREE_USED in
413 expressions, IDENTIFIER_NODE
414
415 nothrow_flag:
416
417 TREE_NOTHROW in
418 CALL_EXPR, FUNCTION_DECL
419
420 TYPE_ALIGN_OK in
421 ..._TYPE
422
423 TREE_THIS_NOTRAP in
424 (ALIGN/MISALIGNED_)INDIRECT_REF, ARRAY_REF, ARRAY_RANGE_REF
425
426 deprecated_flag:
427
428 TREE_DEPRECATED in
429 ..._DECL
430
431 IDENTIFIER_TRANSPARENT_ALIAS in
432 IDENTIFIER_NODE
433
434 visited:
435
436 Used in tree traversals to mark visited nodes.
437
438 invariant_flag:
439
440 TREE_INVARIANT in
441 all expressions.
442
443 nowarning_flag:
444
445 TREE_NO_WARNING in
446 ... any expr or decl node
447 */
448 #undef DEFTREESTRUCT
449 #define DEFTREESTRUCT(ENUM, NAME) ENUM,
450 enum tree_node_structure_enum {
451 #include "treestruct.def"
452 LAST_TS_ENUM
453 };
454 #undef DEFTREESTRUCT