From: Richard Stallman Date: Wed, 1 Jul 1992 21:40:06 +0000 (+0000) Subject: (grokdeclarator): Don't mark file-scope register variables as TREE_PUBLIC. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ee534ebfe9ae15ec54a5ff1c5081c8c261c06a51;p=platform%2Fupstream%2Fgcc.git (grokdeclarator): Don't mark file-scope register variables as TREE_PUBLIC. From-SVN: r1379 --- diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 4cd33a0..ac79c3c 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -4107,11 +4107,15 @@ grokdeclarator (declarator, declspecs, decl_context, initialized) /* An uninitialized decl with `extern' is a reference. */ TREE_EXTERNAL (decl) = !initialized && (specbits & (1 << (int) RID_EXTERN)); - /* At top level, either `static' or no s.c. makes a definition - (perhaps tentative), and absence of `static' makes it public. */ + /* At top level, the presence of a `static' or `register' storage + class specifier, or the absence of all storage class specifiers + makes this declaration a definition (perhaps tentative). Also, + the absence of both `static' and `register' makes it public. */ if (current_binding_level == global_binding_level) { - TREE_PUBLIC (decl) = !(specbits & (1 << (int) RID_STATIC)); + TREE_PUBLIC (decl) + = !(specbits + & ((1 << (int) RID_STATIC) | (1 << (int) RID_REGISTER))); TREE_STATIC (decl) = ! TREE_EXTERNAL (decl); } /* Not at top level, only `static' makes a static definition. */