forked from Imagelibrary/binutils-gdb
PR 12569
* expr.c (operand): Correct passing of "mode" to expr. * read.c (do_org): Allow expr_section. (get_known_segmented_expression): Don't assert anything about the segment.
This commit is contained in:
13
gas/read.c
13
gas/read.c
@@ -1,7 +1,7 @@
|
||||
/* read.c - read a source file -
|
||||
Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
|
||||
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||||
2010 Free Software Foundation, Inc.
|
||||
2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
@@ -2653,7 +2653,9 @@ s_mri (int ignore ATTRIBUTE_UNUSED)
|
||||
static void
|
||||
do_org (segT segment, expressionS *exp, int fill)
|
||||
{
|
||||
if (segment != now_seg && segment != absolute_section)
|
||||
if (segment != now_seg
|
||||
&& segment != absolute_section
|
||||
&& segment != expr_section)
|
||||
as_bad (_("invalid segment \"%s\""), segment_name (segment));
|
||||
|
||||
if (now_seg == absolute_section)
|
||||
@@ -5416,9 +5418,9 @@ get_segmented_expression (expressionS *expP)
|
||||
static segT
|
||||
get_known_segmented_expression (expressionS *expP)
|
||||
{
|
||||
segT retval;
|
||||
segT retval = get_segmented_expression (expP);
|
||||
|
||||
if ((retval = get_segmented_expression (expP)) == undefined_section)
|
||||
if (retval == undefined_section)
|
||||
{
|
||||
/* There is no easy way to extract the undefined symbol from the
|
||||
expression. */
|
||||
@@ -5432,8 +5434,7 @@ get_known_segmented_expression (expressionS *expP)
|
||||
expP->X_op = O_constant;
|
||||
expP->X_add_number = 0;
|
||||
}
|
||||
know (retval == absolute_section || SEG_NORMAL (retval));
|
||||
return (retval);
|
||||
return retval;
|
||||
}
|
||||
|
||||
char /* Return terminator. */
|
||||
|
||||
Reference in New Issue
Block a user