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

@@ -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)