diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-04-11 06:19:56 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-04-11 06:19:56 -0400 |
commit | 73f3c7c3501857eea816eb066d98ad1b2dc86284 (patch) | |
tree | b06f4a36943e5e656375d2ae8a2831983bae1ce8 /gcc | |
parent | 969d0d3c37b98787ec0afa056c8c65182ba509d9 (diff) | |
download | gcc-73f3c7c3501857eea816eb066d98ad1b2dc86284.zip gcc-73f3c7c3501857eea816eb066d98ad1b2dc86284.tar.gz gcc-73f3c7c3501857eea816eb066d98ad1b2dc86284.tar.bz2 |
(frame_size): Now a union.
(DECL_ALIGN, DECL_FRAME_SIZE, DECL_FUNCTION_CODE): Access proper
field of frame_size union.
(DECL_SET_FUNCTION_CODE): Simplified; retained for compatibility.
From-SVN: r7024
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree.h | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -771,7 +771,7 @@ struct tree_type Need not be constant. */ #define DECL_SIZE(NODE) ((NODE)->decl.size) /* Holds the alignment required for the datum. */ -#define DECL_ALIGN(NODE) ((NODE)->decl.frame_size) +#define DECL_ALIGN(NODE) ((NODE)->decl.frame_size.u) /* Holds the machine mode corresponding to the declaration of a variable or field. Always equal to TYPE_MODE (TREE_TYPE (decl)) except for a FIELD_DECL. */ @@ -789,13 +789,11 @@ struct tree_type #define DECL_SAVED_INSNS(NODE) ((NODE)->decl.saved_insns.r) /* For FUNCTION_DECL, if it is inline, holds the size of the stack frame, as an integer. */ -#define DECL_FRAME_SIZE(NODE) ((NODE)->decl.frame_size) +#define DECL_FRAME_SIZE(NODE) ((NODE)->decl.frame_size.i) /* For FUNCTION_DECL, if it is built-in, this identifies which built-in operation it is. */ -#define DECL_FUNCTION_CODE(NODE) \ - ((enum built_in_function) (NODE)->decl.frame_size) -#define DECL_SET_FUNCTION_CODE(NODE,VAL) \ - ((NODE)->decl.frame_size = (int) (VAL)) +#define DECL_FUNCTION_CODE(NODE) ((NODE)->decl.frame_size.f) +#define DECL_SET_FUNCTION_CODE(NODE,VAL) ((NODE)->decl.frame_size.f = (VAL)) /* For a FIELD_DECL, holds the size of the member as an integer. */ #define DECL_FIELD_SIZE(NODE) ((NODE)->decl.saved_insns.i) @@ -955,7 +953,11 @@ struct tree_decl /* For a FUNCTION_DECL, if inline, this is the size of frame needed. If built-in, this is the code for which built-in function. For other kinds of decls, this is DECL_ALIGN. */ - int frame_size; + union { + int i; + unsigned int u; + enum built_in_function f; + } frame_size; /* For FUNCTION_DECLs: points to insn that constitutes its definition on the permanent obstack. For any other kind of decl, this is the alignment. */ |