From 3a2bf8d37de84d647864bcaf139b54258c985279 Mon Sep 17 00:00:00 2001 From: rth Date: Fri, 29 Aug 2003 21:57:05 +0000 Subject: [PATCH] * c-tree.h (C_DECL_FILE_SCOPE): Move ... * tree.h (DECL_FILE_SCOPE_P): ... here, and rename. * c-decl.c, c-objc-common.c, c-typeck.c: Update to match. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70925 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/c-decl.c | 20 ++++++++++---------- gcc/c-objc-common.c | 4 ++-- gcc/c-tree.h | 5 ----- gcc/c-typeck.c | 6 +++--- gcc/tree.h | 5 +++++ 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0875dfd..d96b40a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-08-29 Richard Henderson + + * c-tree.h (C_DECL_FILE_SCOPE): Move ... + * tree.h (DECL_FILE_SCOPE_P): ... here, and rename. + * c-decl.c, c-objc-common.c, c-typeck.c: Update to match. + 2003-08-29 Kaveh R. Ghazi * builtins.def: Fix typos. diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 721946e..51491d2 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1571,7 +1571,7 @@ warn_if_shadowing (tree x, tree old) name = IDENTIFIER_POINTER (DECL_NAME (x)); if (TREE_CODE (old) == PARM_DECL) shadow_warning (SW_PARAM, name, old); - else if (C_DECL_FILE_SCOPE (old)) + else if (DECL_FILE_SCOPE_P (old)) shadow_warning (SW_GLOBAL, name, old); else shadow_warning (SW_LOCAL, name, old); @@ -1818,7 +1818,7 @@ implicitly_declare (tree functionid) if (!C_DECL_IMPLICIT (decl)) { implicit_decl_warning (DECL_NAME (decl)); - if (! C_DECL_FILE_SCOPE (decl)) + if (! DECL_FILE_SCOPE_P (decl)) warning ("%Hprevious declaration of '%D'", &DECL_SOURCE_LOCATION (decl), decl); C_DECL_IMPLICIT (decl) = 1; @@ -1898,7 +1898,7 @@ redeclaration_error_message (tree newdecl, tree olddecl) return 1; return 0; } - else if (C_DECL_FILE_SCOPE (newdecl)) + else if (DECL_FILE_SCOPE_P (newdecl)) { /* Objects declared at file scope: */ /* If at least one is a reference, it's ok. */ @@ -2689,7 +2689,7 @@ start_decl (tree declarator, tree declspecs, int initialized, tree attributes) and we preserved the rtl from the previous one (which may or may not happen). */ && !DECL_RTL_SET_P (tem) - && C_DECL_FILE_SCOPE (tem)) + && DECL_FILE_SCOPE_P (tem)) { if (TREE_TYPE (tem) != error_mark_node && (COMPLETE_TYPE_P (TREE_TYPE (tem)) @@ -2794,7 +2794,7 @@ finish_decl (tree decl, tree init, tree asmspec_tree) Otherwise, let it through, but if it is not `extern' then it may cause an error message later. */ (DECL_INITIAL (decl) != 0 - || !C_DECL_FILE_SCOPE (decl)) + || !DECL_FILE_SCOPE_P (decl)) : /* An automatic variable with an incomplete type is an error. */ @@ -2865,7 +2865,7 @@ finish_decl (tree decl, tree init, tree asmspec_tree) if (c_dialect_objc ()) objc_check_decl (decl); - if (C_DECL_FILE_SCOPE (decl)) + if (DECL_FILE_SCOPE_P (decl)) { if (DECL_INITIAL (decl) == NULL_TREE || DECL_INITIAL (decl) == error_mark_node) @@ -2905,7 +2905,7 @@ finish_decl (tree decl, tree init, tree asmspec_tree) add_decl_stmt (decl); } - if (!C_DECL_FILE_SCOPE (decl)) + if (!DECL_FILE_SCOPE_P (decl)) { /* Recompute the RTL of a local array now if it used to be an incomplete type. */ @@ -2930,7 +2930,7 @@ finish_decl (tree decl, tree init, tree asmspec_tree) /* This is a no-op in c-lang.c or something real in objc-act.c. */ if (c_dialect_objc ()) objc_check_decl (decl); - rest_of_decl_compilation (decl, NULL, C_DECL_FILE_SCOPE (decl), 0); + rest_of_decl_compilation (decl, NULL, DECL_FILE_SCOPE_P (decl), 0); } /* At the end of a declaration, throw away any variable type sizes @@ -6308,7 +6308,7 @@ c_expand_body_1 (tree fndecl, int nested_p) to run global initializers, etc. */ if (DECL_NAME (fndecl) && MAIN_NAME_P (DECL_NAME (fndecl)) - && C_DECL_FILE_SCOPE (fndecl)) + && DECL_FILE_SCOPE_P (fndecl)) expand_main_function (); /* Generate the RTL for this function. */ @@ -6640,7 +6640,7 @@ tree identifier_global_value (tree t) { tree decl = IDENTIFIER_SYMBOL_VALUE (t); - if (decl == 0 || C_DECL_FILE_SCOPE (decl)) + if (decl == 0 || DECL_FILE_SCOPE_P (decl)) return decl; /* Shadowed by something else; find the true global value. */ diff --git a/gcc/c-objc-common.c b/gcc/c-objc-common.c index 887175b..b5f263f 100644 --- a/gcc/c-objc-common.c +++ b/gcc/c-objc-common.c @@ -127,7 +127,7 @@ inline_forbidden_p (tree *nodep, int *walk_subtrees ATTRIBUTE_UNUSED, /* We cannot inline a nested function that jumps to a nonlocal label. */ if (TREE_CODE (t) == LABEL_DECL - && !C_DECL_FILE_SCOPE (t) && DECL_CONTEXT (t) != fn) + && !DECL_FILE_SCOPE_P (t) && DECL_CONTEXT (t) != fn) return node; break; @@ -184,7 +184,7 @@ c_cannot_inline_tree_fn (tree *fnp) goto cannot_inline; } - if (! C_DECL_FILE_SCOPE (fn)) + if (! DECL_FILE_SCOPE_P (fn)) { /* If a nested function has pending sizes, we may have already saved them. */ diff --git a/gcc/c-tree.h b/gcc/c-tree.h index 48b91f5..7615486 100644 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -138,11 +138,6 @@ struct lang_type GTY(()) || (TYPE_ARG_TYPES (TREE_TYPE (EXP)) == 0 \ && !DECL_BUILT_IN (EXP))) -/* Nonzero for a decl which is at file scope. */ -#define C_DECL_FILE_SCOPE(EXP) \ - (! DECL_CONTEXT (EXP) \ - || TREE_CODE (DECL_CONTEXT (EXP)) == TRANSLATION_UNIT_DECL) - /* For FUNCTION_TYPE, a hidden list of types of arguments. The same as TYPE_ARG_TYPES for functions with prototypes, but created for functions without prototypes. */ diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 423d6bd..2dfce9e 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -1545,7 +1545,7 @@ build_external_ref (tree id, int fun) /* Properly declared variable or function reference. */ if (!objc_ivar) ref = decl; - else if (decl != objc_ivar && !C_DECL_FILE_SCOPE (decl)) + else if (decl != objc_ivar && !DECL_FILE_SCOPE_P (decl)) { warning ("local declaration of `%s' hides instance variable", IDENTIFIER_POINTER (id)); @@ -1585,7 +1585,7 @@ build_external_ref (tree id, int fun) TREE_CONSTANT (ref) = 1; } else if (current_function_decl != 0 - && !C_DECL_FILE_SCOPE (current_function_decl) + && !DECL_FILE_SCOPE_P (current_function_decl) && (TREE_CODE (ref) == VAR_DECL || TREE_CODE (ref) == PARM_DECL || TREE_CODE (ref) == FUNCTION_DECL)) @@ -2436,7 +2436,7 @@ build_unary_op (enum tree_code code, tree xarg, int flag) file-scope function counts as a constant. */ if (staticp (arg) && ! (TREE_CODE (arg) == FUNCTION_DECL - && !C_DECL_FILE_SCOPE (arg))) + && !DECL_FILE_SCOPE_P (arg))) TREE_CONSTANT (addr) = 1; return addr; } diff --git a/gcc/tree.h b/gcc/tree.h index c553750..7f99a51 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -1624,6 +1624,11 @@ struct tree_type GTY(()) #define DECL_ESTIMATED_INSNS(NODE) \ (FUNCTION_DECL_CHECK (NODE)->decl.u1.i) +/* Nonzero for a decl which is at file scope. */ +#define DECL_FILE_SCOPE_P(EXP) \ + (! DECL_CONTEXT (EXP) \ + || TREE_CODE (DECL_CONTEXT (EXP)) == TRANSLATION_UNIT_DECL) + struct function; struct tree_decl GTY(()) -- 2.7.4