summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/gas/struc-symbol.h
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1998-02-28 00:52:21 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1998-02-28 00:52:21 +0000
commitaec8fae7b71e7994f4fc91c851ee819c8e3a51d9 (patch)
tree738a29567df2714c4663ec36767197634909609e /gnu/usr.bin/gas/struc-symbol.h
parentc3a25357ea4388e10eda41500b43ed181dfab2cb (diff)
A merge of the late resolution of symbols code Ian Lance Taylor added to
gas2 back in 1993. gcc2.8 generates code which relies on this.
Diffstat (limited to 'gnu/usr.bin/gas/struc-symbol.h')
-rw-r--r--gnu/usr.bin/gas/struc-symbol.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/gnu/usr.bin/gas/struc-symbol.h b/gnu/usr.bin/gas/struc-symbol.h
index 3fef4c8ad50..f3d442d4e0b 100644
--- a/gnu/usr.bin/gas/struc-symbol.h
+++ b/gnu/usr.bin/gas/struc-symbol.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: struc-symbol.h,v 1.2 1998/02/15 18:48:59 niklas Exp $ */
+/* $OpenBSD: struc-symbol.h,v 1.3 1998/02/28 00:51:59 niklas Exp $ */
/* struct_symbol.h - Internal symbol structure
Copyright (C) 1987, 1992 Free Software Foundation, Inc.
@@ -32,13 +32,15 @@ struct symbol /* our version of an nlist node */
long sy_number; /* 24 bit symbol number. */
/* Symbol numbers start at 0 and are */
/* unsigned. */
+
+ /* The value of the symbol. */
+ expressionS sy_value;
+
struct symbol *sy_next; /* forward chain, or NULL */
#ifdef SYMBOLS_NEED_BACKPOINTERS
struct symbol *sy_previous; /* backward chain, or NULL */
#endif /* SYMBOLS_NEED_BACKPOINTERS */
struct frag *sy_frag; /* NULL or -> frag this symbol attaches to. */
- struct symbol *sy_forward; /* value is really that of this other symbol */
- /* We will probably want to add a sy_segment here soon. */
#ifdef PIC
/* Force symbol into symbol table, even if local */
@@ -55,6 +57,13 @@ struct symbol /* our version of an nlist node */
#define BIND_LOCAL 0 /* currently not used */
#define BIND_GLOBAL 1 /* currently not used */
#define BIND_WEAK 2
+
+ /* Whether symbol value has been completely resolved (used during
+ final pass over symbol table). */
+ int sy_resolved : 1;
+ /* Whether the symbol value is currently being resolved (used to
+ detect loops in symbol dependencies). */
+ int sy_resolving : 1;
};
typedef struct symbol symbolS;