aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1992-09-15 17:55:38 -0700
committerJim Wilson <wilson@gcc.gnu.org>1992-09-15 17:55:38 -0700
commitff92a69118621261e102d2cb9f1d1e316359f112 (patch)
treeaba0d52e0a05d04bc0df72010d45471b592833a4
parentfd0b8fce4dc174fa55a0a706e2068a00eacf466a (diff)
downloadgcc-ff92a69118621261e102d2cb9f1d1e316359f112.zip
gcc-ff92a69118621261e102d2cb9f1d1e316359f112.tar.gz
gcc-ff92a69118621261e102d2cb9f1d1e316359f112.tar.bz2
(lang_identifier): Add limbo_value field for out of scope block level extern declarations.
(lang_identifier): Add limbo_value field for out of scope block level extern declarations. (IDENTIFIER_LIMBO_VALUE): New define, to access that field. From-SVN: r2129
-rw-r--r--gcc/c-tree.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index dc70540..68d29d9 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -19,6 +19,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Language-dependent contents of an identifier. */
+/* The limbo_value is used for block level extern declarations, which need
+ to be type checked against subsequent extern declarations. They can't
+ be referenced after they fall out of scope, so they can't be global. */
+
struct lang_identifier
{
struct tree_identifier ignore;
@@ -53,6 +57,8 @@ struct lang_identifier
message for this identifier. Value is a FUNCTION_DECL or null. */
#define IDENTIFIER_ERROR_LOCUS(NODE) \
(((struct lang_identifier *)(NODE))->error_locus)
+#define IDENTIFIER_LIMBO_VALUE(NODE) \
+ (((struct lang_identifier *)(NODE))->limbo_value)
/* In identifiers, C uses the following fields in a special way:
TREE_PUBLIC to record that there was a previous local extern decl.