Module Name:    src
Committed By:   rillig
Date:           Sat Sep  4 13:45:37 UTC 2021

Modified Files:
        src/tests/usr.bin/xlint/lint1: msg_005.c msg_005.exp
        src/usr.bin/xlint/common: tyname.c
        src/usr.bin/xlint/lint1: decl.c

Log Message:
lint: reduce indentation in tdeferr

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_005.c
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/xlint/lint1/msg_005.exp
cvs rdiff -u -r1.46 -r1.47 src/usr.bin/xlint/common/tyname.c
cvs rdiff -u -r1.232 -r1.233 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_005.c
diff -u src/tests/usr.bin/xlint/lint1/msg_005.c:1.3 src/tests/usr.bin/xlint/lint1/msg_005.c:1.4
--- src/tests/usr.bin/xlint/lint1/msg_005.c:1.3	Sun Jan 31 11:12:07 2021
+++ src/tests/usr.bin/xlint/lint1/msg_005.c	Sat Sep  4 13:45:37 2021
@@ -1,8 +1,29 @@
-/*	$NetBSD: msg_005.c,v 1.3 2021/01/31 11:12:07 rillig Exp $	*/
+/*	$NetBSD: msg_005.c,v 1.4 2021/09/04 13:45:37 rillig Exp $	*/
 # 3 "msg_005.c"
 
 // Test for message: modifying typedef with '%s'; only qualifiers allowed [5]
 
 typedef int number;
-number long long_variable;	/* expect: 5 */
-number const const_variable;
+
+/* expect+1: warning: modifying typedef with 'signed'; only qualifiers allowed [5] */
+typedef number signed signed_number;
+
+/* expect+1: warning: modifying typedef with 'unsigned'; only qualifiers allowed [5] */
+typedef number unsigned unsigned_number;
+
+/* expect+1: warning: modifying typedef with 'short'; only qualifiers allowed [5] */
+typedef number short short_number;
+
+/* expect+1: modifying typedef with 'long'; only qualifiers allowed [5] */
+typedef number long long_number;
+
+/*
+ * If the type qualifier comes first, the following name is interpreted as a
+ * new name, not as the one referring to the typedef.  This makes the above
+ * type modifications even more obscure.
+ */
+/* expect+1: error: syntax error 'prefix_long_number' [249] */
+typedef long number prefix_long_number;
+
+/* Type qualifiers are OK. */
+typedef number const const_number;

Index: src/tests/usr.bin/xlint/lint1/msg_005.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_005.exp:1.2 src/tests/usr.bin/xlint/lint1/msg_005.exp:1.3
--- src/tests/usr.bin/xlint/lint1/msg_005.exp:1.2	Sat Jan  2 18:06:01 2021
+++ src/tests/usr.bin/xlint/lint1/msg_005.exp	Sat Sep  4 13:45:37 2021
@@ -1 +1,5 @@
-msg_005.c(7): warning: modifying typedef with 'long'; only qualifiers allowed [5]
+msg_005.c(9): warning: modifying typedef with 'signed'; only qualifiers allowed [5]
+msg_005.c(12): warning: modifying typedef with 'unsigned'; only qualifiers allowed [5]
+msg_005.c(15): warning: modifying typedef with 'short'; only qualifiers allowed [5]
+msg_005.c(18): warning: modifying typedef with 'long'; only qualifiers allowed [5]
+msg_005.c(26): error: syntax error 'prefix_long_number' [249]

Index: src/usr.bin/xlint/common/tyname.c
diff -u src/usr.bin/xlint/common/tyname.c:1.46 src/usr.bin/xlint/common/tyname.c:1.47
--- src/usr.bin/xlint/common/tyname.c:1.46	Tue Aug 31 23:49:21 2021
+++ src/usr.bin/xlint/common/tyname.c	Sat Sep  4 13:45:36 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tyname.c,v 1.46 2021/08/31 23:49:21 rillig Exp $	*/
+/*	$NetBSD: tyname.c,v 1.47 2021/09/04 13:45:36 rillig Exp $	*/
 
 /*-
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: tyname.c,v 1.46 2021/08/31 23:49:21 rillig Exp $");
+__RCSID("$NetBSD: tyname.c,v 1.47 2021/09/04 13:45:36 rillig Exp $");
 #endif
 
 #include <limits.h>
@@ -147,6 +147,7 @@ buf_add_int(buffer *buf, int n)
 	buf_add(buf, num);
 }
 
+/* XXX: at least partly redundant with ttab[t].tt_name */
 const char *
 tspec_name(tspec_t t)
 {

Index: src/usr.bin/xlint/lint1/decl.c
diff -u src/usr.bin/xlint/lint1/decl.c:1.232 src/usr.bin/xlint/lint1/decl.c:1.233
--- src/usr.bin/xlint/lint1/decl.c:1.232	Sat Sep  4 13:27:59 2021
+++ src/usr.bin/xlint/lint1/decl.c	Sat Sep  4 13:45:37 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: decl.c,v 1.232 2021/09/04 13:27:59 rillig Exp $ */
+/* $NetBSD: decl.c,v 1.233 2021/09/04 13:45:37 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.232 2021/09/04 13:27:59 rillig Exp $");
+__RCSID("$NetBSD: decl.c,v 1.233 2021/09/04 13:45:37 rillig Exp $");
 #endif
 
 #include <sys/param.h>
@@ -443,88 +443,51 @@ tdeferr(type_t *td, tspec_t t)
 
 	t2 = td->t_tspec;
 
-	switch (t) {
-	case SIGNED:
-	case UNSIGN:
-		if (t2 == CHAR || t2 == SHORT || t2 == INT || t2 == LONG ||
-		    t2 == QUAD) {
-			if (!tflag)
-				/* modifying typedef with '%s'; only ... */
-				warning(5, ttab[t].tt_name);
-			td = dup_type(gettyp(merge_signedness(t2, t)));
-			td->t_typedef = true;
-			return td;
-		}
-		break;
-	case SHORT:
-		if (t2 == INT || t2 == UINT) {
-			/* modifying typedef with '%s'; only qualifiers ... */
-			warning(5, "short");
-			td = dup_type(gettyp(t2 == INT ? SHORT : USHORT));
-			td->t_typedef = true;
-			return td;
-		}
-		break;
-	case LONG:
-		if (t2 == INT || t2 == UINT || t2 == LONG || t2 == ULONG ||
-		    t2 == FLOAT || t2 == DOUBLE || t2 == DCOMPLEX) {
-			/* modifying typedef with '%s'; only qualifiers ... */
-			warning(5, "long");
-			if (t2 == INT) {
-				td = gettyp(LONG);
-			} else if (t2 == UINT) {
-				td = gettyp(ULONG);
-			} else if (t2 == LONG) {
-				td = gettyp(QUAD);
-			} else if (t2 == ULONG) {
-				td = gettyp(UQUAD);
-			} else if (t2 == FLOAT) {
-				td = gettyp(DOUBLE);
-			} else if (t2 == DOUBLE) {
-				td = gettyp(LDOUBLE);
-			} else if (t2 == DCOMPLEX) {
-				td = gettyp(LCOMPLEX);
-			}
-			td = dup_type(td);
-			td->t_typedef = true;
-			return td;
-		}
-		break;
-		/* LINTED206: (enumeration values not handled in switch) */
-	case NOTSPEC:
-	case USHORT:
-	case UCHAR:
-	case SCHAR:
-	case CHAR:
-	case BOOL:
-	case FUNC:
-	case ARRAY:
-	case PTR:
-	case ENUM:
-	case UNION:
-	case STRUCT:
-	case VOID:
-	case LDOUBLE:
-	case FLOAT:
-	case DOUBLE:
-	case UQUAD:
-	case QUAD:
-#ifdef INT128_SIZE
-	case UINT128:
-	case INT128:
-#endif
-	case ULONG:
-	case UINT:
-	case INT:
-	case FCOMPLEX:
-	case DCOMPLEX:
-	case LCOMPLEX:
-	case COMPLEX:
-		break;
+	if ((t == SIGNED || t == UNSIGN) &&
+	    (t2 == CHAR || t2 == SHORT || t2 == INT ||
+	     t2 == LONG || t2 == QUAD)) {
+		if (!tflag)
+			/* modifying typedef with '%s'; only qualifiers... */
+			warning(5, tspec_name(t));
+		td = dup_type(gettyp(merge_signedness(t2, t)));
+		td->t_typedef = true;
+		return td;
+	}
+
+	if (t == SHORT && (t2 == INT || t2 == UINT)) {
+		/* modifying typedef with '%s'; only qualifiers allowed */
+		warning(5, "short");
+		td = dup_type(gettyp(t2 == INT ? SHORT : USHORT));
+		td->t_typedef = true;
+		return td;
+	}
+
+	if (t == LONG &&
+	    (t2 == INT || t2 == UINT || t2 == LONG || t2 == ULONG ||
+	     t2 == FLOAT || t2 == DOUBLE || t2 == DCOMPLEX)) {
+		/* modifying typedef with '%s'; only qualifiers allowed */
+		warning(5, "long");
+		if (t2 == INT) {
+			td = gettyp(LONG);
+		} else if (t2 == UINT) {
+			td = gettyp(ULONG);
+		} else if (t2 == LONG) {
+			td = gettyp(QUAD);
+		} else if (t2 == ULONG) {
+			td = gettyp(UQUAD);
+		} else if (t2 == FLOAT) {
+			td = gettyp(DOUBLE);
+		} else if (t2 == DOUBLE) {
+			td = gettyp(LDOUBLE);
+		} else if (t2 == DCOMPLEX) {
+			td = gettyp(LCOMPLEX);
+		}
+		td = dup_type(td);
+		td->t_typedef = true;
+		return td;
 	}
 
-	/* Anything other is not accepted. */
-
+	/* Anything else is not accepted. */
 	dcs->d_invalid_type_combination = true;
 	return td;
 }

Reply via email to