diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1998-02-28 00:52:21 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1998-02-28 00:52:21 +0000 |
commit | aec8fae7b71e7994f4fc91c851ee819c8e3a51d9 (patch) | |
tree | 738a29567df2714c4663ec36767197634909609e /gnu/usr.bin/gas/struc-symbol.h | |
parent | c3a25357ea4388e10eda41500b43ed181dfab2cb (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.h | 15 |
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; |