aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus>1994-12-20 22:42:03 +0000
committerKen Raeburn <raeburn@cygnus>1994-12-20 22:42:03 +0000
commit87e48495014d9a1d075e7c99aeb9cb29daccc796 (patch)
tree12f68295b61f65ec259118b7107e7b7ed9d9e418 /gas/config
parent0427f3ec1c0f0d356e6c1e4a91e8ff116f0c3ee8 (diff)
downloadgdb-87e48495014d9a1d075e7c99aeb9cb29daccc796.zip
gdb-87e48495014d9a1d075e7c99aeb9cb29daccc796.tar.gz
gdb-87e48495014d9a1d075e7c99aeb9cb29daccc796.tar.bz2
* frags.c (frag_init): Call obstack_begin on `frags'.
* subsegs.c (subsegs_begin): Don't do it here. * as.c (main): Call frag_init before subsegs_begin. * frags.c (frag_append_1_char): New function. * frags.h (frag_append_1_char): Declare it. (FRAG_APPEND_1_CHAR): Call it. Old definition is commented out for now. * as.h (struct frag): Added (but commented out) new fields for tracking current alignment. (frag_now_fix): Changed macro to function declaration. * frags.c (frag_now_fix): Define function here. (frag_new): Use it instead of accessing `frags' directly. * frags.h (frags): Change comment to indicate it shouldn't be accessed directly. * subsegs.h (struct frchain): New field frch_obstack, intended to eventually replace global `frags' obstack. * subsegs.c (subseg_set_rest): Use frag_now_fix instead of accessing `frags' directly. Initialize fields of new frchainS explicitly instead of with memset. * config/obj-coff.c (obj_coff_ln) [!BFD_ASSEMBLER]: Use frag_now_fix. * config/tc-mips.c (s_loc), config/obj-vms.c (vms_resolve_symbol_redef), symbols.c (colon): Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/obj-coff.c3
-rw-r--r--gas/config/obj-vms.c6
-rw-r--r--gas/config/tc-mips.c2
3 files changed, 5 insertions, 6 deletions
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index b263fe3..3b62c52 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -1912,8 +1912,7 @@ obj_coff_ln (appline)
} /* wrong context */
l = get_absolute_expression ();
- c_line_new (0, obstack_next_free (&frags) - frag_now->fr_literal, l,
- frag_now);
+ c_line_new (0, frag_now_fix (), l, frag_now);
#ifndef NO_LISTING
{
extern int listing;
diff --git a/gas/config/obj-vms.c b/gas/config/obj-vms.c
index 3a29259..48e8a97 100644
--- a/gas/config/obj-vms.c
+++ b/gas/config/obj-vms.c
@@ -355,8 +355,8 @@ vms_resolve_symbol_redef (sym)
* If the new symbol is .comm AND it has a size of zero,
* we ignore it (i.e. the old symbol overrides it)
*/
- if ((SEGMENT_TO_SYMBOL_TYPE ((int) now_seg) == (N_UNDF | N_EXT)) &&
- ((obstack_next_free (&frags) - frag_now->fr_literal) == 0))
+ if (SEGMENT_TO_SYMBOL_TYPE ((int) now_seg) == (N_UNDF | N_EXT)
+ && frag_now_fix () == 0)
{
as_warn ("compiler emitted zero-size common symbol `%s' already defined",
S_GET_NAME (sym));
@@ -373,7 +373,7 @@ vms_resolve_symbol_redef (sym)
S_GET_NAME (sym));
sym->sy_frag = frag_now;
S_SET_OTHER(sym, const_flag);
- S_SET_VALUE(sym, obstack_next_free(& frags) - frag_now->fr_literal);
+ S_SET_VALUE(sym, frag_now_fix ());
/* Keep N_EXT bit. */
sym->sy_symbol.n_type |= SEGMENT_TO_SYMBOL_TYPE((int) now_seg);
return 1;
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index ca7024b..f377859 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -6861,7 +6861,7 @@ s_loc (x)
assert (now_seg == text_section);
lineno = get_number ();
- addroff = obstack_next_free (&frags) - frag_now->fr_literal;
+ addroff = frag_now_fix ();
symbolP = symbol_new ("", N_SLINE, addroff, frag_now);
S_SET_TYPE (symbolP, N_SLINE);