X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Fldlex.l;h=0fcbe84c8b589db28ef9689cda816a7b89d71b6a;hb=f809832224cc45eb58812f6d4bb03cbf52fad980;hp=261c0c1c0fff5efc2a6aad041282e4c14592f0f6;hpb=c1c8c1ef9acdeddf719f358b91590545440cea68;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/ldlex.l b/ld/ldlex.l index 261c0c1c0f..0fcbe84c8b 100644 --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -2,7 +2,7 @@ %{ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support. This file is part of the GNU Binutils. @@ -25,6 +25,7 @@ #include "bfd.h" #include "safe-ctype.h" #include "bfdlink.h" +#include "ctf-api.h" #include "ld.h" #include "ldmisc.h" #include "ldexp.h" @@ -91,17 +92,14 @@ static void lex_warn_invalid (char *where, char *what); %a 4000 %o 5000 -CMDFILENAMECHAR [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\-\~] -CMDFILENAMECHAR1 [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\~] -FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~] -SYMBOLNAMECHAR1 [_a-zA-Z\/\.\\\$\_] -SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9] -FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~] -WILDCHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*\^\!] +WILDCHAR [_a-zA-Z0-9\/\.\\\$\~\-\+\:\[\]\,\=\?\*\^\!] +FILENAMECHAR [_a-zA-Z0-9\/\.\\\$\~\-\+\:\[\]\,\=] +NOCFILENAMECHAR [_a-zA-Z0-9\/\.\\\$\~\-\+\:\[\]] +SYMBOLNAMECHAR [_a-zA-Z0-9\/\.\\\$\~] +FILENAMECHAR1 [_a-zA-Z\/\.\\\$\~] +SYMBOLNAMECHAR1 [_a-zA-Z\.\\\$] WHITE [ \t\n\r]+ -NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~] - V_TAG [.$_a-zA-Z][._a-zA-Z0-9]* V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* @@ -137,7 +135,8 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* "-" { RTOKEN('-');} "+" { RTOKEN('+');} -{SYMBOLNAMECHAR1}{SYMBOLCHARN}* { yylval.name = xstrdup (yytext); return NAME; } +{SYMBOLNAMECHAR1}{SYMBOLNAMECHAR}* { yylval.name = xstrdup (yytext); + return NAME; } "=" { RTOKEN('='); } "$"([0-9A-Fa-f])+ { @@ -368,31 +367,30 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* {FILENAMECHAR1}{NOCFILENAMECHAR}* { /* Filename without commas, needed to parse mri stuff */ - yylval.name = xstrdup (yytext); + yylval.name = xstrdup (yytext); return NAME; } {FILENAMECHAR1}{FILENAMECHAR}* { - yylval.name = xstrdup (yytext); + yylval.name = xstrdup (yytext); return NAME; } "="{FILENAMECHAR1}{FILENAMECHAR}* { /* Filename to be prefixed by --sysroot or when non-sysrooted, nothing. */ - yylval.name = xstrdup (yytext); - return NAME; - } -"$SYSROOT"{FILENAMECHAR1}{FILENAMECHAR}* { -/* Filename to be prefixed by --sysroot or when non-sysrooted, nothing. */ - yylval.name = xstrdup (yytext); + yylval.name = xstrdup (yytext); return NAME; } "-l"{FILENAMECHAR}+ { yylval.name = xstrdup (yytext + 2); return LNAME; } -{SYMBOLNAMECHAR1}{NOCFILENAMECHAR}* { - yylval.name = xstrdup (yytext); +{SYMBOLNAMECHAR1}{NOCFILENAMECHAR}* { + yylval.name = xstrdup (yytext); + return NAME; + } +"/DISCARD/" { + yylval.name = xstrdup (yytext); return NAME; } "-l"{NOCFILENAMECHAR}+ { @@ -424,7 +422,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* /* PR ld/20906. A corrupt input file can contain bogus strings. */ len = strlen (yylval.name); - if (len > yyleng - 2) + if (len > (bfd_size_type) yyleng - 2) len = yyleng - 2; yylval.name[len] = 0; return NAME; @@ -678,7 +676,7 @@ comment (void) while (1) { c = input(); - while (c != '*' && c != EOF) + while (c != '*' && c != 0) { if (c == '\n') lineno++; @@ -697,7 +695,7 @@ comment (void) if (c == '\n') lineno++; - if (c == EOF) + if (c == 0) { einfo (_("%F%P: EOF in comment\n")); break;