From 746dcfd6a0c3e31c85454a1be271d513e46459f6 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Thu, 24 May 2007 09:24:09 +0000 Subject: * ldlex.l: ASSERT is recognized in SCRIPT env. NAMES cannot contain commas in EXP env. * ldgram.y (extern_name_list): Push to EXP env, move body to ... (extern_name_list_body): ... here. (script_file, ifile_list): Reformat. (statement): Add ASSERT. testsuite: * ld-scripts/assert.t: Add additional cases. * ld-scripts/extern.t, ld-scripts/extern.s, ld-scripts/extern.exp: New. --- ld/ldgram.y | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'ld/ldgram.y') diff --git a/ld/ldgram.y b/ld/ldgram.y index 78d7165b09..b79fc6ad3b 100644 --- a/ld/ldgram.y +++ b/ld/ldgram.y @@ -280,33 +280,33 @@ casesymlist: | casesymlist ',' NAME ; +/* Parsed as expressions so that commas separate entries */ extern_name_list: + { ldlex_expression (); } + extern_name_list_body + { ldlex_popstate (); } + +extern_name_list_body: NAME { ldlang_add_undef ($1); } - | extern_name_list NAME + | extern_name_list_body NAME { ldlang_add_undef ($2); } - | extern_name_list ',' NAME + | extern_name_list_body ',' NAME { ldlang_add_undef ($3); } ; script_file: - { - ldlex_both(); - } - ifile_list - { - ldlex_popstate(); - } + { ldlex_both(); } + ifile_list + { ldlex_popstate(); } ; - ifile_list: - ifile_list ifile_p1 + ifile_list ifile_p1 | ; - ifile_p1: memory | sections @@ -573,6 +573,9 @@ statement: { lang_add_fill ($3); } + | ASSERT_K {ldlex_expression ();} '(' exp ',' NAME ')' end + { ldlex_popstate (); + lang_add_assignment (exp_assert ($4, $6)); } ; statement_list: -- cgit v1.2.1