* inflow.c (terminal_inferior): Don't give up the terminal if we
[deliverable/binutils-gdb.git] / ld / ldgram.y
index 9038ebc1ae404679096b3110c3b015c1c3f9c0a7..6c46c854473d63618c9416fbe0c32913f8558f1d 100644 (file)
@@ -328,7 +328,7 @@ ifile_p1:
        |       OUTPUT_FORMAT '(' NAME ',' NAME ',' NAME ')'
                  { lang_add_output_format ($3, $5, $7, 1); }
         |      OUTPUT_ARCH '(' NAME ')'
-                 { ldfile_set_output_arch($3); }
+                 { ldfile_set_output_arch ($3, bfd_arch_unknown); }
        |       FORCE_COMMON_ALLOCATION
                { command_line.force_common_definition = TRUE ; }
        |       INHIBIT_COMMON_ALLOCATION
@@ -386,6 +386,9 @@ statement_anywhere:
                ENTRY '(' NAME ')'
                { lang_add_entry ($3, FALSE); }
        |       assignment end
+       |       ASSERT_K  {ldlex_expression ();} '(' exp ',' NAME ')'
+               { ldlex_popstate ();
+                 lang_add_assignment (exp_assert ($4, $6)); }
        ;
 
 /* The '*' and '?' cases are there because the lexer returns them as
@@ -627,7 +630,7 @@ memory_spec_list:
 
 
 memory_spec:   NAME
-               { region = lang_memory_region_lookup($1); }
+               { region = lang_memory_region_lookup ($1, TRUE); }
                attributes_opt ':'
                origin_spec opt_comma length_spec
                {}
@@ -801,6 +804,8 @@ exp :
                        { $$ = exp_unop(ABSOLUTE, $3); }
        |       ALIGN_K '(' exp ')'
                        { $$ = exp_unop(ALIGN_K,$3); }
+       |       ALIGN_K '(' exp ',' exp ')'
+                       { $$ = exp_binop(ALIGN_K,$3,$5); }
        |       DATA_SEGMENT_ALIGN '(' exp ',' exp ')'
                        { $$ = exp_binop (DATA_SEGMENT_ALIGN, $3, $5); }
        |       DATA_SEGMENT_END '(' exp ')'
@@ -841,7 +846,7 @@ section:    NAME            { ldlex_expression(); }
                        {
                          lang_enter_output_section_statement($1, $3,
                                                              sectype,
-                                                             0, 0, $5, $4);
+                                                             0, $5, $4);
                        }
                statement_list_opt
                '}' { ldlex_popstate (); ldlex_expression (); }
@@ -924,7 +929,7 @@ opt_nocrossrefs:
 memspec_opt:
                '>' NAME
                { $$ = $2; }
-       |       { $$ = "*default*"; }
+       |       { $$ = DEFAULT_MEMORY_REGION; }
        ;
 
 phdr_opt:
This page took 0.031589 seconds and 4 git commands to generate.