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. */
 	}
 }
 

Reply via email to