src/tables.c (matching_state): Don't allow states to match if

either has GLR conflict entries.
ChangeLog: update for this and Hilfinger's preceding test-suite	addition.
This commit is contained in:
Paul Hilfinger
2002-11-06 02:46:08 +00:00
parent d04946c717
commit 51b4a04cd0
2 changed files with 22 additions and 1 deletions

View File

@@ -1,3 +1,8 @@
2002-11-04 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
* src/tables.c (matching_state): Don't allow states to match if
either has GLR conflict entries.
2002-11-05 Paul Eggert <eggert@twinsun.com>
Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
@@ -184,6 +189,12 @@
* src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
#if.
2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
* tests/glr-regr1.at: New test for reported regressions.
* tests/testsuite.at: Add glr-regr1.at test.
* tests/Makefile.am: Add glr-regr1.at test.
2002-10-24 Paul Eggert <eggert@twinsun.com>
Version 1.75a.

View File

@@ -610,6 +610,15 @@ matching_state (vector_number_t vector)
t = tally[i];
w = width[i];
/* If VECTOR has GLR conflicts, return -1 */
if (conflict_tos[i] != NULL)
{
int j;
for (j = 0; j < t; j += 1)
if (conflict_tos[i][j] != 0)
return -1;
}
for (prev = vector - 1; prev >= 0; prev--)
{
vector_number_t j = order[prev];
@@ -622,7 +631,8 @@ matching_state (vector_number_t vector)
return -1;
for (k = 0; match && k < t; k++)
if (tos[j][k] != tos[i][k] || froms[j][k] != froms[i][k])
if (tos[j][k] != tos[i][k] || froms[j][k] != froms[i][k]
|| (conflict_tos[j] != NULL && conflict_tos[j][k] != 0))
match = 0;
if (match)