Module Name: src Committed By: rillig Date: Mon Jan 18 17:43:44 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: msg_010.c src/usr.bin/xlint/lint1: decl.c Log Message: lint: fix assertion failure for restrict and _Thread_local To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_010.c cvs rdiff -u -r1.127 -r1.128 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/msg_010.c diff -u src/tests/usr.bin/xlint/lint1/msg_010.c:1.3 src/tests/usr.bin/xlint/lint1/msg_010.c:1.4 --- src/tests/usr.bin/xlint/lint1/msg_010.c:1.3 Mon Jan 18 17:41:04 2021 +++ src/tests/usr.bin/xlint/lint1/msg_010.c Mon Jan 18 17:43:44 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_010.c,v 1.3 2021/01/18 17:41:04 rillig Exp $ */ +/* $NetBSD: msg_010.c,v 1.4 2021/01/18 17:43:44 rillig Exp $ */ # 3 "msg_010.c" // Test for message: duplicate '%s' [10] @@ -21,7 +21,7 @@ double_volatile(void) } int -restrict_pointer(const int * /*restrict*/ p) // FIXME: assertion "== VOLATILE" failed +restrict_pointer(const int *restrict p) { return *p; } Index: src/usr.bin/xlint/lint1/decl.c diff -u src/usr.bin/xlint/lint1/decl.c:1.127 src/usr.bin/xlint/lint1/decl.c:1.128 --- src/usr.bin/xlint/lint1/decl.c:1.127 Sun Jan 17 16:25:30 2021 +++ src/usr.bin/xlint/lint1/decl.c Mon Jan 18 17:43:43 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: decl.c,v 1.127 2021/01/17 16:25:30 rillig Exp $ */ +/* $NetBSD: decl.c,v 1.128 2021/01/18 17:43:43 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.127 2021/01/17 16:25:30 rillig Exp $"); +__RCSID("$NetBSD: decl.c,v 1.128 2021/01/18 17:43:43 rillig Exp $"); #endif #include <sys/param.h> @@ -565,15 +565,15 @@ add_qualifier(tqual_t q) warning(10, "const"); } dcs->d_const = true; - } else { - if (q == THREAD) - return; - lint_assert(q == VOLATILE); + } else if (q == VOLATILE) { if (dcs->d_volatile) { /* duplicate '%s' */ warning(10, "volatile"); } dcs->d_volatile = true; + } else { + lint_assert(q == RESTRICT || q == THREAD); + /* Silently ignore these qualifiers. */ } }