GCC Wikia
Advertisement

このページを編集する際は,編集に関する方針に従ってください.[]

概要[]

実装[]

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



リンク元

Advertisement