X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fsubsegs.c;h=e9c575cdd94f785ecc44e80ee9689b556e89a9f5;hb=e87de5136e9054974b812a362099826fc83e74e9;hp=8c5f8d86b1c24f551aef10115e68f91c5f586e15;hpb=5fd396baa1c3b125d1ef3311348483b1cdc4625d;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/subsegs.c b/gas/subsegs.c index 8c5f8d86b1..e9c575cdd9 100644 --- a/gas/subsegs.c +++ b/gas/subsegs.c @@ -1,13 +1,11 @@ /* subsegs.c - subsegments - - Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1987-2016 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. GAS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -57,7 +55,7 @@ subsegs_begin (void) * segment context correct. */ void -subseg_change (register segT seg, register int subseg) +subseg_change (segT seg, int subseg) { segment_info_type *seginfo = seg_info (seg); now_seg = seg; @@ -65,13 +63,9 @@ subseg_change (register segT seg, register int subseg) if (! seginfo) { - seginfo = (segment_info_type *) xmalloc (sizeof (*seginfo)); - memset ((PTR) seginfo, 0, sizeof (*seginfo)); - seginfo->fix_root = NULL; - seginfo->fix_tail = NULL; + seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo)); seginfo->bfd_section = seg; - seginfo->sym = 0; - bfd_set_section_userdata (stdoutput, seg, (PTR) seginfo); + bfd_set_section_userdata (stdoutput, seg, seginfo); } } @@ -88,7 +82,7 @@ subseg_set_rest (segT seg, subsegT subseg) if (frag_now && frchain_now) frchain_now->frch_frag_now = frag_now; - assert (frchain_now == 0 + gas_assert (frchain_now == 0 || frchain_now->frch_last == frag_now); subseg_change (seg, (int) subseg); @@ -129,7 +123,7 @@ subseg_set_rest (segT seg, subsegT subseg) frchain_now = frcP; frag_now = frcP->frch_frag_now; - assert (frchain_now->frch_last == frag_now); + gas_assert (frchain_now->frch_last == frag_now); } /* @@ -171,16 +165,9 @@ subseg_get (const char *segname, int force_new) if (! seginfo) { secptr->output_section = secptr; - seginfo = (segment_info_type *) xmalloc (sizeof (*seginfo)); - memset ((PTR) seginfo, 0, sizeof (*seginfo)); - seginfo->fix_root = NULL; - seginfo->fix_tail = NULL; + seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo)); seginfo->bfd_section = secptr; - bfd_set_section_userdata (stdoutput, secptr, (PTR) seginfo); - seginfo->frchainP = NULL; - seginfo->lineno_list_head = seginfo->lineno_list_tail = NULL; - seginfo->sym = NULL; - seginfo->dot = NULL; + bfd_set_section_userdata (stdoutput, secptr, seginfo); } return secptr; } @@ -291,7 +278,7 @@ seg_not_empty_p (segT sec ATTRIBUTE_UNUSED) if (!seginfo) return 0; - + for (chain = seginfo->frchainP; chain; chain = chain->frch_next) { for (frag = chain->frch_root; frag; frag = frag->fr_next)