projects
/
platform
/
upstream
/
binutils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't output symbol version definitions for non-DT_NEEDED libs
[platform/upstream/binutils.git]
/
ld
/
ldlex.l
diff --git
a/ld/ldlex.l
b/ld/ldlex.l
index
aa06d54
..
d162128
100644
(file)
--- a/
ld/ldlex.l
+++ b/
ld/ldlex.l
@@
-1,8
+1,8
@@
+%option nounput
+
%{
%{
-/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2007
- Free Software Foundation, Inc.
+/* Copyright (C) 1991-2014 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
This file is part of the GNU Binutils.
Written by Steve Chamberlain of Cygnus Support.
This file is part of the GNU Binutils.
@@
-22,7
+22,6
@@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-#include "sysdep.h"
#include "bfd.h"
#include "safe-ctype.h"
#include "bfdlink.h"
#include "bfd.h"
#include "safe-ctype.h"
#include "bfdlink.h"
@@
-57,24
+56,28
@@
const char *lex_string = NULL;
Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid. */
#undef YY_INPUT
Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid. */
#undef YY_INPUT
-#define YY_INPUT(buf,result,max_size)
yy_input (buf, &result
, max_size)
+#define YY_INPUT(buf,result,max_size)
result = yy_input (buf
, max_size)
+#ifndef YY_NO_UNPUT
#define YY_NO_UNPUT
#define YY_NO_UNPUT
+#endif
#define MAX_INCLUDE_DEPTH 10
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
static const char *file_name_stack[MAX_INCLUDE_DEPTH];
static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
#define MAX_INCLUDE_DEPTH 10
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
static const char *file_name_stack[MAX_INCLUDE_DEPTH];
static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
+static unsigned int sysrooted_stack[MAX_INCLUDE_DEPTH];
static unsigned int include_stack_ptr = 0;
static int vers_node_nesting = 0;
static unsigned int include_stack_ptr = 0;
static int vers_node_nesting = 0;
-static
void yy_input (char *, int
*, int);
+static
int yy_input (char
*, int);
static void comment (void);
static void lex_warn_invalid (char *where, char *what);
/* STATES
EXPRESSION definitely in an expression
SCRIPT definitely in a script
static void comment (void);
static void lex_warn_invalid (char *where, char *what);
/* STATES
EXPRESSION definitely in an expression
SCRIPT definitely in a script
+ INPUTLIST definitely in a script, a filename-list
BOTH either EXPRESSION or SCRIPT
DEFSYMEXP in an argument to -defsym
MRI in an MRI script
BOTH either EXPRESSION or SCRIPT
DEFSYMEXP in an argument to -defsym
MRI in an MRI script
@@
-98,7
+101,7
@@
CMDFILENAMECHAR1 [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\~]
FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~]
SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9]
FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~]
SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9]
FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
-WILDCHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*]
+WILDCHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*
\^\!
]
WHITE [ \t\n\r]+
NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~]
WHITE [ \t\n\r]+
NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~]
@@
-107,6
+110,7
@@
V_TAG [.$_a-zA-Z][._a-zA-Z0-9]*
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
%s SCRIPT
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
%s SCRIPT
+%s INPUTLIST
%s EXPRESSION
%s BOTH
%s DEFSYMEXP
%s EXPRESSION
%s BOTH
%s DEFSYMEXP
@@
-132,7
+136,7
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
}
}
}
}
-<BOTH,SCRIPT,EXPRESSION,VERS_START,VERS_NODE,VERS_SCRIPT
>"/*"
{ comment (); }
+<BOTH,SCRIPT,EXPRESSION,VERS_START,VERS_NODE,VERS_SCRIPT
,INPUTLIST>"/*"
{ comment (); }
<DEFSYMEXP>"-" { RTOKEN('-');}
<DEFSYMEXP>"-" { RTOKEN('-');}
@@
-219,7
+223,7
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<BOTH,SCRIPT,EXPRESSION,MRI>"|=" { RTOKEN(OREQ);}
<BOTH,SCRIPT,EXPRESSION,MRI>"&&" { RTOKEN(ANDAND);}
<BOTH,SCRIPT,EXPRESSION,MRI>">" { RTOKEN('>');}
<BOTH,SCRIPT,EXPRESSION,MRI>"|=" { RTOKEN(OREQ);}
<BOTH,SCRIPT,EXPRESSION,MRI>"&&" { RTOKEN(ANDAND);}
<BOTH,SCRIPT,EXPRESSION,MRI>">" { RTOKEN('>');}
-<BOTH,SCRIPT,EXPRESSION,MRI
>","
{ RTOKEN(',');}
+<BOTH,SCRIPT,EXPRESSION,MRI
,INPUTLIST>","
{ RTOKEN(',');}
<BOTH,SCRIPT,EXPRESSION,MRI>"&" { RTOKEN('&');}
<BOTH,SCRIPT,EXPRESSION,MRI>"|" { RTOKEN('|');}
<BOTH,SCRIPT,EXPRESSION,MRI>"~" { RTOKEN('~');}
<BOTH,SCRIPT,EXPRESSION,MRI>"&" { RTOKEN('&');}
<BOTH,SCRIPT,EXPRESSION,MRI>"|" { RTOKEN('|');}
<BOTH,SCRIPT,EXPRESSION,MRI>"~" { RTOKEN('~');}
@@
-234,11
+238,13
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<BOTH,SCRIPT,EXPRESSION,MRI>"=" { RTOKEN('=');}
<BOTH,SCRIPT,EXPRESSION,MRI>"}" { RTOKEN('}') ; }
<BOTH,SCRIPT,EXPRESSION,MRI>"{" { RTOKEN('{'); }
<BOTH,SCRIPT,EXPRESSION,MRI>"=" { RTOKEN('=');}
<BOTH,SCRIPT,EXPRESSION,MRI>"}" { RTOKEN('}') ; }
<BOTH,SCRIPT,EXPRESSION,MRI>"{" { RTOKEN('{'); }
-<BOTH,SCRIPT,EXPRESSION,MRI
>")"
{ RTOKEN(')');}
-<BOTH,SCRIPT,EXPRESSION,MRI
>"("
{ RTOKEN('(');}
+<BOTH,SCRIPT,EXPRESSION,MRI
,INPUTLIST>")"
{ RTOKEN(')');}
+<BOTH,SCRIPT,EXPRESSION,MRI
,INPUTLIST>"("
{ RTOKEN('(');}
<BOTH,SCRIPT,EXPRESSION,MRI>":" { RTOKEN(':'); }
<BOTH,SCRIPT,EXPRESSION,MRI>";" { RTOKEN(';');}
<BOTH,SCRIPT>"MEMORY" { RTOKEN(MEMORY);}
<BOTH,SCRIPT,EXPRESSION,MRI>":" { RTOKEN(':'); }
<BOTH,SCRIPT,EXPRESSION,MRI>";" { RTOKEN(';');}
<BOTH,SCRIPT>"MEMORY" { RTOKEN(MEMORY);}
+<BOTH,SCRIPT>"REGION_ALIAS" { RTOKEN(REGION_ALIAS);}
+<BOTH,SCRIPT>"LD_FEATURE" { RTOKEN(LD_FEATURE);}
<BOTH,SCRIPT,EXPRESSION>"ORIGIN" { RTOKEN(ORIGIN);}
<BOTH,SCRIPT>"VERSION" { RTOKEN(VERSIONK);}
<EXPRESSION,BOTH,SCRIPT>"BLOCK" { RTOKEN(BLOCK);}
<BOTH,SCRIPT,EXPRESSION>"ORIGIN" { RTOKEN(ORIGIN);}
<BOTH,SCRIPT>"VERSION" { RTOKEN(VERSIONK);}
<EXPRESSION,BOTH,SCRIPT>"BLOCK" { RTOKEN(BLOCK);}
@@
-253,6
+259,7
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<EXPRESSION,BOTH,SCRIPT>"ALIGNOF" { RTOKEN(ALIGNOF); }
<EXPRESSION,BOTH>"MAX" { RTOKEN(MAX_K); }
<EXPRESSION,BOTH>"MIN" { RTOKEN(MIN_K); }
<EXPRESSION,BOTH,SCRIPT>"ALIGNOF" { RTOKEN(ALIGNOF); }
<EXPRESSION,BOTH>"MAX" { RTOKEN(MAX_K); }
<EXPRESSION,BOTH>"MIN" { RTOKEN(MIN_K); }
+<EXPRESSION,BOTH>"LOG2CEIL" { RTOKEN(LOG2CEIL); }
<EXPRESSION,BOTH,SCRIPT>"ASSERT" { RTOKEN(ASSERT_K); }
<BOTH,SCRIPT>"ENTRY" { RTOKEN(ENTRY);}
<BOTH,SCRIPT,MRI>"EXTERN" { RTOKEN(EXTERN);}
<EXPRESSION,BOTH,SCRIPT>"ASSERT" { RTOKEN(ASSERT_K); }
<BOTH,SCRIPT>"ENTRY" { RTOKEN(ENTRY);}
<BOTH,SCRIPT,MRI>"EXTERN" { RTOKEN(EXTERN);}
@@
-267,7
+274,7
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<BOTH,SCRIPT>"OUTPUT" { RTOKEN(OUTPUT);}
<BOTH,SCRIPT>"INPUT" { RTOKEN(INPUT);}
<EXPRESSION,BOTH,SCRIPT>"GROUP" { RTOKEN(GROUP);}
<BOTH,SCRIPT>"OUTPUT" { RTOKEN(OUTPUT);}
<BOTH,SCRIPT>"INPUT" { RTOKEN(INPUT);}
<EXPRESSION,BOTH,SCRIPT>"GROUP" { RTOKEN(GROUP);}
-<EXPRESSION,BOTH,SCRIPT
>"AS_NEEDED"
{ RTOKEN(AS_NEEDED);}
+<EXPRESSION,BOTH,SCRIPT
,INPUTLIST>"AS_NEEDED"
{ RTOKEN(AS_NEEDED);}
<EXPRESSION,BOTH,SCRIPT>"DEFINED" { RTOKEN(DEFINED);}
<BOTH,SCRIPT>"CREATE_OBJECT_SYMBOLS" { RTOKEN(CREATE_OBJECT_SYMBOLS);}
<BOTH,SCRIPT>"CONSTRUCTORS" { RTOKEN( CONSTRUCTORS);}
<EXPRESSION,BOTH,SCRIPT>"DEFINED" { RTOKEN(DEFINED);}
<BOTH,SCRIPT>"CREATE_OBJECT_SYMBOLS" { RTOKEN(CREATE_OBJECT_SYMBOLS);}
<BOTH,SCRIPT>"CONSTRUCTORS" { RTOKEN( CONSTRUCTORS);}
@@
-295,6
+302,8
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<BOTH,SCRIPT>"SORT_BY_NAME" { RTOKEN(SORT_BY_NAME); }
<BOTH,SCRIPT>"SORT_BY_ALIGNMENT" { RTOKEN(SORT_BY_ALIGNMENT); }
<BOTH,SCRIPT>"SORT" { RTOKEN(SORT_BY_NAME); }
<BOTH,SCRIPT>"SORT_BY_NAME" { RTOKEN(SORT_BY_NAME); }
<BOTH,SCRIPT>"SORT_BY_ALIGNMENT" { RTOKEN(SORT_BY_ALIGNMENT); }
<BOTH,SCRIPT>"SORT" { RTOKEN(SORT_BY_NAME); }
+<BOTH,SCRIPT>"SORT_BY_INIT_PRIORITY" { RTOKEN(SORT_BY_INIT_PRIORITY); }
+<BOTH,SCRIPT>"SORT_NONE" { RTOKEN(SORT_NONE); }
<EXPRESSION,BOTH,SCRIPT>"NOLOAD" { RTOKEN(NOLOAD);}
<EXPRESSION,BOTH,SCRIPT>"DSECT" { RTOKEN(DSECT);}
<EXPRESSION,BOTH,SCRIPT>"COPY" { RTOKEN(COPY);}
<EXPRESSION,BOTH,SCRIPT>"NOLOAD" { RTOKEN(NOLOAD);}
<EXPRESSION,BOTH,SCRIPT>"DSECT" { RTOKEN(DSECT);}
<EXPRESSION,BOTH,SCRIPT>"COPY" { RTOKEN(COPY);}
@@
-307,10
+316,13
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<BOTH,SCRIPT>"org" { RTOKEN(ORIGIN);}
<BOTH,SCRIPT>"l" { RTOKEN( LENGTH);}
<BOTH,SCRIPT>"len" { RTOKEN( LENGTH);}
<BOTH,SCRIPT>"org" { RTOKEN(ORIGIN);}
<BOTH,SCRIPT>"l" { RTOKEN( LENGTH);}
<BOTH,SCRIPT>"len" { RTOKEN( LENGTH);}
+<EXPRESSION,BOTH,SCRIPT>"INPUT_SECTION_FLAGS" { RTOKEN(INPUT_SECTION_FLAGS); }
<EXPRESSION,BOTH,SCRIPT>"INCLUDE" { RTOKEN(INCLUDE);}
<BOTH,SCRIPT>"PHDRS" { RTOKEN (PHDRS); }
<EXPRESSION,BOTH,SCRIPT>"AT" { RTOKEN(AT);}
<EXPRESSION,BOTH,SCRIPT>"INCLUDE" { RTOKEN(INCLUDE);}
<BOTH,SCRIPT>"PHDRS" { RTOKEN (PHDRS); }
<EXPRESSION,BOTH,SCRIPT>"AT" { RTOKEN(AT);}
+<EXPRESSION,BOTH,SCRIPT>"ALIGN_WITH_INPUT" { RTOKEN(ALIGN_WITH_INPUT);}
<EXPRESSION,BOTH,SCRIPT>"SUBALIGN" { RTOKEN(SUBALIGN);}
<EXPRESSION,BOTH,SCRIPT>"SUBALIGN" { RTOKEN(SUBALIGN);}
+<EXPRESSION,BOTH,SCRIPT>"HIDDEN" { RTOKEN(HIDDEN); }
<EXPRESSION,BOTH,SCRIPT>"PROVIDE" { RTOKEN(PROVIDE); }
<EXPRESSION,BOTH,SCRIPT>"PROVIDE_HIDDEN" { RTOKEN(PROVIDE_HIDDEN); }
<EXPRESSION,BOTH,SCRIPT>"KEEP" { RTOKEN(KEEP); }
<EXPRESSION,BOTH,SCRIPT>"PROVIDE" { RTOKEN(PROVIDE); }
<EXPRESSION,BOTH,SCRIPT>"PROVIDE_HIDDEN" { RTOKEN(PROVIDE_HIDDEN); }
<EXPRESSION,BOTH,SCRIPT>"KEEP" { RTOKEN(KEEP); }
@@
-363,11
+375,16
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
}
}
-<BOTH>{FILENAMECHAR1}{FILENAMECHAR}* {
+<BOTH,INPUTLIST>{FILENAMECHAR1}{FILENAMECHAR}* {
+ yylval.name = xstrdup (yytext);
+ return NAME;
+ }
+<INPUTLIST>"="{FILENAMECHAR1}{FILENAMECHAR}* {
+/* Filename to be prefixed by --sysroot or when non-sysrooted, nothing. */
yylval.name = xstrdup (yytext);
return NAME;
}
yylval.name = xstrdup (yytext);
return NAME;
}
-<BOTH>"-l"{FILENAMECHAR}+ {
+<BOTH
,INPUTLIST
>"-l"{FILENAMECHAR}+ {
yylval.name = xstrdup (yytext + 2);
return LNAME;
}
yylval.name = xstrdup (yytext + 2);
return LNAME;
}
@@
-396,7
+413,7
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
}
}
}
}
-<EXPRESSION,BOTH,SCRIPT,VERS_NODE>"\""[^\"]*"\"" {
+<EXPRESSION,BOTH,SCRIPT,VERS_NODE
,INPUTLIST
>"\""[^\"]*"\"" {
/* No matter the state, quotes
give what's inside */
yylval.name = xstrdup (yytext + 1);
/* No matter the state, quotes
give what's inside */
yylval.name = xstrdup (yytext + 1);
@@
-437,22
+454,17
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<VERS_START,VERS_NODE,VERS_SCRIPT>#.* { /* Eat up comments */ }
<VERS_START,VERS_NODE,VERS_SCRIPT>#.* { /* Eat up comments */ }
-<VERS_START,VERS_NODE,VERS_SCRIPT
>[ \t\r]+
{ /* Eat up whitespace */ }
+<VERS_START,VERS_NODE,VERS_SCRIPT
,INPUTLIST>[ \t\r]+
{ /* Eat up whitespace */ }
<<EOF>> {
include_stack_ptr--;
<<EOF>> {
include_stack_ptr--;
-
if (include_stack_ptr == 0)
if (include_stack_ptr == 0)
- {
yyterminate ();
yyterminate ();
- }
else
else
- {
yy_switch_to_buffer (include_stack[include_stack_ptr]);
yy_switch_to_buffer (include_stack[include_stack_ptr]);
- }
- ldfile_input_filename = file_name_stack[include_stack_ptr - 1];
lineno = lineno_stack[include_stack_ptr];
lineno = lineno_stack[include_stack_ptr];
+ input_flags.sysrooted = sysrooted_stack[include_stack_ptr];
return END;
}
return END;
}
@@
-467,7
+479,7
@@
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
saving the current input info on the include stack. */
void
saving the current input info on the include stack. */
void
-lex_push_file (FILE *file, const char *name)
+lex_push_file (FILE *file, const char *name
, unsigned int sysrooted
)
{
if (include_stack_ptr >= MAX_INCLUDE_DEPTH)
{
{
if (include_stack_ptr >= MAX_INCLUDE_DEPTH)
{
@@
-475,10
+487,12
@@
lex_push_file (FILE *file, const char *name)
}
file_name_stack[include_stack_ptr] = name;
lineno_stack[include_stack_ptr] = lineno;
}
file_name_stack[include_stack_ptr] = name;
lineno_stack[include_stack_ptr] = lineno;
+ sysrooted_stack[include_stack_ptr] = input_flags.sysrooted;
include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
include_stack_ptr++;
lineno = 1;
include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
include_stack_ptr++;
lineno = 1;
+ input_flags.sysrooted = sysrooted;
yyin = file;
yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE));
}
yyin = file;
yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE));
}
@@
-527,7
+541,7
@@
yy_create_string_buffer (const char *string, size_t size)
on the include stack. */
void
on the include stack. */
void
-lex_redirect (const char *string)
+lex_redirect (const char *string
, const char *fake_filename, unsigned int count
)
{
YY_BUFFER_STATE tmp;
{
YY_BUFFER_STATE tmp;
@@
-536,11
+550,11
@@
lex_redirect (const char *string)
{
einfo("%F: macros nested too deeply\n");
}
{
einfo("%F: macros nested too deeply\n");
}
- file_name_stack[include_stack_ptr] =
"redirect"
;
+ file_name_stack[include_stack_ptr] =
fake_filename
;
lineno_stack[include_stack_ptr] = lineno;
include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
include_stack_ptr++;
lineno_stack[include_stack_ptr] = lineno;
include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
include_stack_ptr++;
- lineno =
1
;
+ lineno =
count
;
tmp = yy_create_string_buffer (string, strlen (string));
yy_switch_to_buffer (tmp);
}
tmp = yy_create_string_buffer (string, strlen (string));
yy_switch_to_buffer (tmp);
}
@@
-559,6
+573,13
@@
ldlex_script (void)
}
void
}
void
+ldlex_inputlist (void)
+{
+ *(state_stack_p)++ = yy_start;
+ BEGIN (INPUTLIST);
+}
+
+void
ldlex_mri_script (void)
{
*(state_stack_p)++ = yy_start;
ldlex_mri_script (void)
{
*(state_stack_p)++ = yy_start;
@@
-605,24
+626,34
@@
ldlex_popstate (void)
{
yy_start = *(--state_stack_p);
}
{
yy_start = *(--state_stack_p);
}
+
+/* Return the current file name, or the previous file if no file is
+ current. */
+
+const char*
+ldlex_filename (void)
+{
+ return file_name_stack[include_stack_ptr - (include_stack_ptr != 0)];
+}
\f
\f
-/* Place up to MAX_SIZE characters in BUF and return
in *RESULT
+/* Place up to MAX_SIZE characters in BUF and return
either the number of characters read, or 0 to indicate EOF. */
either the number of characters read, or 0 to indicate EOF. */
-static
void
-yy_input (char *buf, int
*result, int
max_size)
+static
int
+yy_input (char *buf, int max_size)
{
{
-
*
result = 0;
+
int
result = 0;
if (YY_CURRENT_BUFFER->yy_input_file)
{
if (yyin)
{
if (YY_CURRENT_BUFFER->yy_input_file)
{
if (yyin)
{
-
*
result = fread (buf, 1, max_size, yyin);
- if (
*
result < max_size && ferror (yyin))
+ result = fread (buf, 1, max_size, yyin);
+ if (result < max_size && ferror (yyin))
einfo ("%F%P: read in flex scanner failed\n");
}
}
einfo ("%F%P: read in flex scanner failed\n");
}
}
+ return result;
}
/* Eat the rest of a C-style comment. */
}
/* Eat the rest of a C-style comment. */
@@
-677,14
+708,14
@@
lex_warn_invalid (char *where, char *what)
if (ldfile_assumed_script)
{
bfd_set_error (bfd_error_file_not_recognized);
if (ldfile_assumed_script)
{
bfd_set_error (bfd_error_file_not_recognized);
- einfo ("%F%s: file not recognized: %E\n", ld
file_input_filename
);
+ einfo ("%F%s: file not recognized: %E\n", ld
lex_filename ()
);
}
if (! ISPRINT (*what))
{
}
if (! ISPRINT (*what))
{
- sprintf (buf, "\\%03o",
(unsigned int) *
what);
+ sprintf (buf, "\\%03o",
*(unsigned char *)
what);
what = buf;
}
what = buf;
}
- einfo ("%P:%S: ignoring invalid character `%s'%s\n", what, where);
+ einfo ("%P:%S: ignoring invalid character `%s'%s\n",
NULL,
what, where);
}
}