aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2024-12-03 10:47:36 +0100
committerJan Beulich <jbeulich@suse.com>2024-12-03 10:47:36 +0100
commit29f84cf8a214db79fe28c6d7d4a1e242783555c4 (patch)
treef24b271675ce3e17fa91e1da63877c63d2ff1d9e /gas
parent98439a80cce3ba652ef4bd4cc69c0b7a04c2c60e (diff)
downloadgdb-29f84cf8a214db79fe28c6d7d4a1e242783555c4.zip
gdb-29f84cf8a214db79fe28c6d7d4a1e242783555c4.tar.gz
gdb-29f84cf8a214db79fe28c6d7d4a1e242783555c4.tar.bz2
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.
Diffstat (limited to 'gas')
-rw-r--r--gas/expr.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/gas/expr.c b/gas/expr.c
index fc3b6a3..056870b 100644
--- a/gas/expr.c
+++ b/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