forked from Imagelibrary/binutils-gdb
gas: streamline expr_build_dot()
There's no point involving symbol_clone_if_forward_ref(), just for it to replace dot_symbol by one obtained from symbol_temp_new_now(). For the abs-section case also produce a slightly more "complete" (as in: all potentially relevant fields filled) expression by going through expr_build_uconstant(). Move the function next to current_location(), for it to be easier to see the (dis)similarities. Correct the function's comment while there.
This commit is contained in:
29
gas/expr.c
29
gas/expr.c
@@ -193,17 +193,6 @@ expr_build_uconstant (offsetT value)
|
||||
e.X_extrabit = 0;
|
||||
return make_expr_symbol (&e);
|
||||
}
|
||||
|
||||
/* Build an expression for the current location ('.'). */
|
||||
|
||||
symbolS *
|
||||
expr_build_dot (void)
|
||||
{
|
||||
expressionS e;
|
||||
|
||||
current_location (&e);
|
||||
return symbol_clone_if_forward_ref (make_expr_symbol (&e));
|
||||
}
|
||||
|
||||
/* Build any floating-point literal here.
|
||||
Also build any bignum literal here. */
|
||||
@@ -754,6 +743,24 @@ current_location (expressionS *expressionp)
|
||||
}
|
||||
}
|
||||
|
||||
/* Make a symbol for the current location ('.'). */
|
||||
|
||||
symbolS *
|
||||
expr_build_dot (void)
|
||||
{
|
||||
if (now_seg != absolute_section)
|
||||
{
|
||||
symbolS *symbolP = symbol_temp_new_now ();
|
||||
|
||||
#ifdef tc_new_dot_label
|
||||
tc_new_dot_label (symbolP);
|
||||
#endif
|
||||
return symbolP;
|
||||
}
|
||||
|
||||
return expr_build_uconstant (abs_section_offset);
|
||||
}
|
||||
|
||||
#ifndef md_register_arithmetic
|
||||
# define md_register_arithmetic 1
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user