From c0920bf9777de321d52e277b812c39cb16386244 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sun, 29 Mar 1992 03:47:34 +0000 Subject: [PATCH] *** empty log message *** From-SVN: r621 --- gcc/print-tree.c | 8 ++++++-- gcc/tree.c | 3 ++- gcc/tree.h | 8 +++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/gcc/print-tree.c b/gcc/print-tree.c index 50983a9e76b..9001373cd81 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -343,8 +343,12 @@ print_node (file, prefix, node, indent) print_node (file, "size", DECL_SIZE (node), indent + 4); indent_to (file, indent + 3); - fprintf (file, " align %d", DECL_ALIGN (node)); - fprintf (file, " frame_size %d", DECL_FRAME_SIZE (node)); + if (TREE_CODE (node) != FUNCTION_DECL) + fprintf (file, " align %d", DECL_ALIGN (node)); + else if (TREE_INLINE (node)) + fprintf (file, " frame_size %d", DECL_FRAME_SIZE (node)); + else if (DECL_BUILT_IN (node)) + fprintf (file, " built-in code %d", DECL_FUNCTION_CODE (node)); if (TREE_CODE (node) == FIELD_DECL) print_node (file, "bitpos", DECL_FIELD_BITPOS (node), indent + 4); print_node_brief (file, "context", DECL_CONTEXT (node), indent + 4); diff --git a/gcc/tree.c b/gcc/tree.c index 9485332f538..c6a74a11c6d 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -859,7 +859,8 @@ make_node (code) break; case 'd': - DECL_ALIGN (t) = 1; + if (code != FUNCTION_DECL) + DECL_ALIGN (t) = 1; DECL_SOURCE_LINE (t) = lineno; DECL_SOURCE_FILE (t) = (input_filename) ? input_filename : ""; break; diff --git a/gcc/tree.h b/gcc/tree.h index 2569128b9ee..dd01f6e967c 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -666,7 +666,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.align) +#define DECL_ALIGN(NODE) ((NODE)->decl.frame_size) /* Holds the machine mode of a variable or field. */ #define DECL_MODE(NODE) ((NODE)->decl.mode) /* Holds the RTL expression for the value of a variable or function. */ @@ -771,7 +771,6 @@ struct tree_decl #else enum machine_mode mode : 8; #endif - unsigned char align; unsigned external_flag : 1; unsigned nonlocal_flag : 1; @@ -801,7 +800,10 @@ struct tree_decl union tree_node *assembler_name; struct rtx_def *rtl; /* acts as link to register transfer language (rtl) info */ - int frame_size; /* For FUNCTION_DECLs: size of stack frame */ + /* 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 any other kind of decl, this is the alignment. */ + int frame_size; struct rtx_def *saved_insns; /* For FUNCTION_DECLs: points to insn that constitutes its definition on the permanent obstack. */ -- 2.30.2