diff options
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/ldexp.c | 2 | ||||
-rw-r--r-- | ld/ldlex.l | 10 |
3 files changed, 14 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 7e24b95..53f2428 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2016-07-05 Jan Beulich <jbeulich@suse.com> + + * ldexp.c (exp_fold_tree_1): Set linker_def field based on + assignment line number. + * ldlex.l (lineno): Drop initializer. + (<<EOF>>): Set lineno to zero after reaching top of stack. + 2016-07-04 H.J. Lu <hongjiu.lu@intel.com> PR ld/20321 @@ -1182,7 +1182,7 @@ exp_fold_tree_1 (etree_type *tree) h->type = bfd_link_hash_defined; h->u.def.value = expld.result.value; h->u.def.section = expld.result.section; - h->linker_def = 0; + h->linker_def = ! tree->assign.type.lineno; if (tree->type.node_class == etree_provide) tree->type.node_class = etree_provided; @@ -39,9 +39,8 @@ yylex and yyparse (indirectly) both check this. */ input_type parser_input; -/* Line number in the current input file. - (FIXME Actually, it doesn't appear to get reset for each file?) */ -unsigned int lineno = 1; +/* Line number in the current input file. */ +unsigned int lineno; /* The string we are currently lexing, or NULL if we are reading a file. */ @@ -460,7 +459,10 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* <<EOF>> { include_stack_ptr--; if (include_stack_ptr == 0) - yyterminate (); + { + lineno = 0; + yyterminate (); + } else yy_switch_to_buffer (include_stack[include_stack_ptr]); |