diff options
author | Jan Beulich <jbeulich@novell.com> | 2016-07-05 11:36:08 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2016-07-05 11:36:08 +0200 |
commit | 1753ed681125949b081376dd97056a3f2930e7d7 (patch) | |
tree | 604de3fef2f91ab1dde48fba430522615b6e30e2 | |
parent | 33d0ab95489cb3cf7ec98bee63c3541b5295adb6 (diff) | |
download | gdb-1753ed681125949b081376dd97056a3f2930e7d7.zip gdb-1753ed681125949b081376dd97056a3f2930e7d7.tar.gz gdb-1753ed681125949b081376dd97056a3f2930e7d7.tar.bz2 |
ld: track linker-definedness of symbols
Keep "lineno" as zero while not processing any script, and use it being
zero to set the "linker_def" field to true.
-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]); |