spew.c (yylex): Only copy the token's lineno, if it is non-zero.

cp:
	* spew.c (yylex): Only copy the token's lineno, if it is
	non-zero.
testsuite:
	* g++.old-deja/g++.other/lineno5.C: New test.

From-SVN: r44391
This commit is contained in:
Nathan Sidwell 2001-07-26 08:15:43 +00:00 committed by Nathan Sidwell
parent 648c220695
commit 312b7c9dd9
4 changed files with 35 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2001-07-26 Nathan Sidwell <nathan@codesourcery.com>
* spew.c (yylex): Only copy the token's lineno, if it is
non-zero.
2001-07-26 Nathan Sidwell <nathan@codesourcery.com>
PR c++/3624

View File

@ -833,8 +833,13 @@ yylex ()
got_object = NULL_TREE;
yychar = yychr;
yylval = nth_token (0)->yylval;
lineno = nth_token (0)->lineno;
{
struct token *tok = nth_token (0);
yylval = tok->yylval;
if (tok->lineno)
lineno = tok->lineno;
}
#ifdef SPEW_DEBUG
if (spew_debug)

View File

@ -1,3 +1,7 @@
2001-07-26 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.other/lineno5.C: New test.
2001-07-26 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.pt/crash68.C: New test.

View File

@ -0,0 +1,19 @@
// Build don't link:
//
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 25 Jul 2001 <nathan@codesourcery.com>
// Origin: johanb@DoCS.UU.SE
// Bug 3621. At the end of saved input, we'd set the lineno to
// zero. This would confusing things no end, if there was a subsequent
// error.
namespace tmp {
typedef int B;
B b;
}
class A {
public:
int kaka(tmp::B = b); // ERROR - no b in scope
};