Module Name: src Committed By: rillig Date: Sun Jan 10 18:13:43 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: d_lint_assert.c d_lint_assert.exp src/usr.bin/xlint/lint1: decl.c Log Message: lint: fix assertion failure for syntax error in enum declaration To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/d_lint_assert.c \ src/tests/usr.bin/xlint/lint1/d_lint_assert.exp cvs rdiff -u -r1.118 -r1.119 src/usr.bin/xlint/lint1/decl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/usr.bin/xlint/lint1/d_lint_assert.c diff -u src/tests/usr.bin/xlint/lint1/d_lint_assert.c:1.1 src/tests/usr.bin/xlint/lint1/d_lint_assert.c:1.2 --- src/tests/usr.bin/xlint/lint1/d_lint_assert.c:1.1 Sun Jan 10 18:06:38 2021 +++ src/tests/usr.bin/xlint/lint1/d_lint_assert.c Sun Jan 10 18:13:43 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: d_lint_assert.c,v 1.1 2021/01/10 18:06:38 rillig Exp $ */ +/* $NetBSD: d_lint_assert.c,v 1.2 2021/01/10 18:13:43 rillig Exp $ */ # 3 "d_lint_assert.c" /* @@ -6,14 +6,10 @@ * just hard to trigger, but not impossible. */ -/* lint1-extra-flags: -p */ - enum { + // Before decl.c 1.118 from 2021-01-10: // lint: assertion "sym->s_scl == EXTERN || sym->s_scl == STATIC" // failed in check_global_variable at decl.c:3135 // near d_lint_assert.c:14 - //A = +++ - DUMMY = 0 + A = +++ }; - -"syntax error to keep the .exp file." Index: src/tests/usr.bin/xlint/lint1/d_lint_assert.exp diff -u src/tests/usr.bin/xlint/lint1/d_lint_assert.exp:1.1 src/tests/usr.bin/xlint/lint1/d_lint_assert.exp:1.2 --- src/tests/usr.bin/xlint/lint1/d_lint_assert.exp:1.1 Sun Jan 10 18:06:38 2021 +++ src/tests/usr.bin/xlint/lint1/d_lint_assert.exp Sun Jan 10 18:13:43 2021 @@ -1 +1 @@ -d_lint_assert.c(19): syntax error '"' [249] +d_lint_assert.c(15): syntax error '}' [249] Index: src/usr.bin/xlint/lint1/decl.c diff -u src/usr.bin/xlint/lint1/decl.c:1.118 src/usr.bin/xlint/lint1/decl.c:1.119 --- src/usr.bin/xlint/lint1/decl.c:1.118 Sun Jan 10 14:12:48 2021 +++ src/usr.bin/xlint/lint1/decl.c Sun Jan 10 18:13:42 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: decl.c,v 1.118 2021/01/10 14:12:48 rillig Exp $ */ +/* $NetBSD: decl.c,v 1.119 2021/01/10 18:13:42 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -38,7 +38,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: decl.c,v 1.118 2021/01/10 14:12:48 rillig Exp $"); +__RCSID("$NetBSD: decl.c,v 1.119 2021/01/10 18:13:42 rillig Exp $"); #endif #include <sys/param.h> @@ -3132,6 +3132,9 @@ check_global_variable(sym_t *sym) if (sym->s_scl == TYPEDEF || sym->s_scl == ENUMCON) return; + if (sym->s_scl == NOSCL) + return; /* May be caused by a syntax error. */ + lint_assert(sym->s_scl == EXTERN || sym->s_scl == STATIC); check_global_variable_size(sym);