[PATCH v0 5/6] ldgram.y: add ASCII

binutils@emagii.com binutils@emagii.com
Wed Feb 15 11:40:51 GMT 2023


From: Ulf Samuelsson <ulf@emagii.com>

Signed-off-by: Ulf Samuelsson <ulf@emagii.com>
---
 ld/ldgram.y | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/ld/ldgram.y b/ld/ldgram.y
index 8240cf97327..6c3e510111c 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -91,7 +91,7 @@ static int error_index;
 }
 
 %type <etree> exp opt_exp_with_type mustbe_exp opt_at phdr_type phdr_val
-%type <etree> opt_exp_without_type opt_subalign opt_align
+%type <etree> mustbe_int opt_exp_without_type opt_subalign opt_align
 %type <fill> fill_opt fill_exp
 %type <name_list> exclude_name_list
 %type <wildcard_list> section_name_list
@@ -125,7 +125,7 @@ static int error_index;
 %right UNARY
 %token END
 %left <token> '('
-%token <token> ALIGN_K BLOCK BIND QUAD SQUAD LONG SHORT BYTE ASCIZ
+%token <token> ALIGN_K BLOCK BIND QUAD SQUAD LONG SHORT BYTE ASCII ASCIII ASCIZ
 %token SECTIONS PHDRS INSERT_K AFTER BEFORE
 %token DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END DATA_SEGMENT_END
 %token SORT_BY_NAME SORT_BY_ALIGNMENT SORT_NONE
@@ -668,9 +668,21 @@ statement:
 		{
 		  lang_add_data ((int) $1, $3);
 		}
+	| ASCII '(' mustbe_int ')' NAME
+		{
+		  /* 'value' is a memory leak, do we care? */
+		  etree_type *value = $3;
+		  lang_add_string (value->value.value, $5);
+		}
+	| ASCII mustbe_int ',' NAME
+		{
+		  /* 'value' is a memory leak, do we care? */
+		  etree_type *value = $2;
+		  lang_add_string (value->value.value, $4);
+		}
 	| ASCIZ NAME
 		{
-		  lang_add_string ($2);
+		  lang_add_string (0, $2);
 		}
 	| FILL '(' fill_exp ')'
 		{
@@ -910,6 +922,15 @@ mustbe_exp:		{ ldlex_expression (); }
 			{ ldlex_popstate (); $$ = $2; }
 	;
 
+mustbe_int:		{ ldlex_expression (); }
+		INT
+			{ 
+			  etree_type *value = exp_bigintop ($2.integer, $2.str);
+			  ldlex_popstate ();
+			  $$ = value;
+			}
+	;
+
 exp	:
 		'-' exp %prec UNARY
 			{ $$ = exp_unop ('-', $2); }
-- 
2.17.1



More information about the Binutils mailing list