Module Name:    src
Committed By:   rillig
Date:           Sun Aug 29 10:13:02 UTC 2021

Modified Files:
        src/usr.bin/xlint/lint2: chk.c emit2.c lint2.h read.c

Log Message:
lint: un-abbreviate members of sym_t

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/usr.bin/xlint/lint2/chk.c
cvs rdiff -u -r1.22 -r1.23 src/usr.bin/xlint/lint2/emit2.c
cvs rdiff -u -r1.18 -r1.19 src/usr.bin/xlint/lint2/lint2.h
cvs rdiff -u -r1.56 -r1.57 src/usr.bin/xlint/lint2/read.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xlint/lint2/chk.c
diff -u src/usr.bin/xlint/lint2/chk.c:1.44 src/usr.bin/xlint/lint2/chk.c:1.45
--- src/usr.bin/xlint/lint2/chk.c:1.44	Sun Aug 22 04:43:44 2021
+++ src/usr.bin/xlint/lint2/chk.c	Sun Aug 29 10:13:02 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: chk.c,v 1.44 2021/08/22 04:43:44 rillig Exp $ */
+/* $NetBSD: chk.c,v 1.45 2021/08/29 10:13:02 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: chk.c,v 1.44 2021/08/22 04:43:44 rillig Exp $");
+__RCSID("$NetBSD: chk.c,v 1.45 2021/08/29 10:13:02 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -382,7 +382,8 @@ chkfaui(const hte_t *hte, sym_t *def, sy
 		ap2 = tp2->t_args;
 		n = 0;
 		while (*ap1 != NULL && *ap2 != NULL) {
-			if (def != NULL && def->s_va && n >= def->s_nva)
+			if (def != NULL && def->s_check_only_first_args &&
+			    n >= def->s_check_num_args)
 				break;
 			n++;
 			chkau(hte, n, def, decl, pos1p, call1, call,
@@ -392,7 +393,8 @@ chkfaui(const hte_t *hte, sym_t *def, sy
 		}
 		if (*ap1 == *ap2) {
 			/* equal # of arguments */
-		} else if (def != NULL && def->s_va && n >= def->s_nva) {
+		} else if (def != NULL && def->s_check_only_first_args &&
+			   n >= def->s_check_num_args) {
 			/*
 			 * function definition with VARARGS; The # of
 			 * arguments of the call must be at least as large
@@ -413,16 +415,18 @@ chkfaui(const hte_t *hte, sym_t *def, sy
 		}
 
 		/* perform SCANFLIKE/PRINTFLIKE tests */
-		if (def == NULL || (!def->s_prfl && !def->s_scfl))
+		if (def == NULL || (!def->s_printflike && !def->s_scanflike))
 			continue;
-		as = def->s_prfl ? def->s_nprfl : def->s_nscfl;
+		as = def->s_printflike
+		    ? def->s_printflike_arg
+		    : def->s_scanflike_arg;
 		for (ai = call->f_args; ai != NULL; ai = ai->a_next) {
 			if (ai->a_num == as)
 				break;
 		}
 		if (ai == NULL || !ai->a_fmt)
 			continue;
-		if (def->s_prfl) {
+		if (def->s_printflike) {
 			printflike(hte, call, n, ai->a_fstrg, ap2);
 		} else {
 			scanflike(hte, call, n, ai->a_fstrg, ap2);
@@ -463,7 +467,7 @@ chkau(const hte_t *hte, int n, sym_t *de
 	 */
 
 	/* arg1 must be promoted if it stems from an old style definition */
-	promote = def != NULL && def->s_osdef;
+	promote = def != NULL && def->s_old_style_function;
 
 	/*
 	 * If we compare with a definition or declaration, we must perform
@@ -1078,7 +1082,7 @@ chkrvu(const hte_t *hte, sym_t *def)
 	if (hte->h_calls == NULL)
 		return;
 
-	if (def->s_rval) {
+	if (def->s_function_has_return_value) {
 		/*
 		 * XXX as soon as we are able to disable single warnings
 		 * the following dependencies from hflag should be removed.
@@ -1130,7 +1134,7 @@ chkadecl(const hte_t *hte, sym_t *def, s
 
 	osdef = false;
 	if (def != NULL) {
-		osdef = def->s_osdef;
+		osdef = def->s_old_style_function;
 		sym1 = def;
 	} else if (decl != NULL && TP(decl->s_type)->t_proto) {
 		sym1 = decl;
@@ -1173,8 +1177,8 @@ chkadecl(const hte_t *hte, sym_t *def, s
 			tp2 = TP(sym->s_type);
 			if (tp1->t_vararg == tp2->t_vararg)
 				continue;
-			if (tp2->t_vararg &&
-			    sym1->s_va && sym1->s_nva == n && !sflag) {
+			if (tp2->t_vararg && sym1->s_check_only_first_args &&
+			    sym1->s_check_num_args == n && !sflag) {
 				continue;
 			}
 		}

Index: src/usr.bin/xlint/lint2/emit2.c
diff -u src/usr.bin/xlint/lint2/emit2.c:1.22 src/usr.bin/xlint/lint2/emit2.c:1.23
--- src/usr.bin/xlint/lint2/emit2.c:1.22	Sat Aug 28 17:18:42 2021
+++ src/usr.bin/xlint/lint2/emit2.c	Sun Aug 29 10:13:02 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: emit2.c,v 1.22 2021/08/28 17:18:42 rillig Exp $ */
+/* $NetBSD: emit2.c,v 1.23 2021/08/29 10:13:02 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: emit2.c,v 1.22 2021/08/28 17:18:42 rillig Exp $");
+__RCSID("$NetBSD: emit2.c,v 1.23 2021/08/29 10:13:02 rillig Exp $");
 #endif
 
 #include "lint2.h"
@@ -160,25 +160,25 @@ outdef(hte_t *hte, sym_t *sym)
 	outint(0);
 
 	/* flags */
-	if (sym->s_va) {
-		outchar('v');		/* varargs */
-		outint(sym->s_nva);
+	if (sym->s_check_only_first_args) {
+		outchar('v');
+		outint(sym->s_check_num_args);
 	}
-	if (sym->s_scfl) {
-		outchar('S');		/* scanflike */
-		outint(sym->s_nscfl);
+	if (sym->s_scanflike) {
+		outchar('S');
+		outint(sym->s_scanflike_arg);
 	}
-	if (sym->s_prfl) {
-		outchar('P');		/* printflike */
-		outint(sym->s_nprfl);
+	if (sym->s_printflike) {
+		outchar('P');
+		outint(sym->s_printflike_arg);
 	}
 	/* definition or tentative definition */
 	outchar(sym->s_def == DEF ? 'd' : 't');
 	if (TP(sym->s_type)->t_tspec == FUNC) {
-		if (sym->s_rval)
-			outchar('r');	/* fkt. has return value */
-		if (sym->s_osdef)
-			outchar('o');	/* old style definition */
+		if (sym->s_function_has_return_value)
+			outchar('r');
+		if (sym->s_old_style_function)
+			outchar('o');
 	}
 	outchar('u');			/* used (no warning if not used) */
 

Index: src/usr.bin/xlint/lint2/lint2.h
diff -u src/usr.bin/xlint/lint2/lint2.h:1.18 src/usr.bin/xlint/lint2/lint2.h:1.19
--- src/usr.bin/xlint/lint2/lint2.h:1.18	Sun Aug 29 09:48:02 2021
+++ src/usr.bin/xlint/lint2/lint2.h	Sun Aug 29 10:13:02 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lint2.h,v 1.18 2021/08/29 09:48:02 rillig Exp $ */
+/* $NetBSD: lint2.h,v 1.19 2021/08/29 10:13:02 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -103,14 +103,7 @@ typedef	struct {
 	unsigned short p_iline;	/* line number in p_iline */
 } pos_t;
 
-/*
- * Used for definitions and declarations
- *
- * To save memory, variable sized structures are used. If
- * all s_va, s_prfl and s_scfl are not set, the memory allocated
- * for a symbol is only large enough to keep the first member of
- * struct sym, s_s.
- */
+/* Used for definitions and declarations. */
 typedef	struct sym {
 	struct {
 		pos_t	s_pos;		/* pos of def./decl. */
@@ -119,30 +112,35 @@ typedef	struct sym {
 #else
 		def_t	s_def;
 #endif
-		bool	s_rval : 1;	/* function has return value */
-		bool	s_inline : 1;	/* function is inline */
-		bool	s_osdef : 1;	/* old style function definition */
-		bool	s_static : 1;	/* symbol is static */
-		bool	s_va : 1;	/* check only first s_nva arguments */
-		bool	s_prfl : 1;	/* printflike */
-		bool	s_scfl : 1;	/* scanflike */
-		unsigned short s_type;	/* type */
+		bool	s_function_has_return_value : 1;
+		bool	s_inline : 1;
+		bool	s_old_style_function : 1;
+		bool	s_static : 1;
+		bool	s_check_only_first_args : 1;
+		bool	s_printflike : 1;
+		bool	s_scanflike : 1;
+		unsigned short s_type;
+		/* XXX: gap of 4 bytes on LP64 platforms */
 		struct	sym *s_next;	/* next symbol with same name */
 	} s_s;
-	short	s_nva;
-	short	s_nprfl;
-	short	s_nscfl;
+	/*
+	 * To save memory, the remaining members are only allocated if one of
+	 * s_check_only_first_args, s_printflike and s_scanflike is set.
+	 */
+	short	s_check_num_args;	/* if s_check_only_first_args */
+	short	s_printflike_arg;	/* if s_printflike */
+	short	s_scanflike_arg;	/* if s_scanflike */
 } sym_t;
 
 #define s_pos		s_s.s_pos
-#define s_rval		s_s.s_rval
-#define s_osdef		s_s.s_osdef
+#define s_function_has_return_value s_s.s_function_has_return_value
+#define s_old_style_function s_s.s_old_style_function
 #define s_inline	s_s.s_inline
 #define s_static	s_s.s_static
 #define s_def		s_s.s_def
-#define s_va		s_s.s_va
-#define s_prfl		s_s.s_prfl
-#define s_scfl		s_s.s_scfl
+#define s_check_only_first_args	s_s.s_check_only_first_args
+#define s_printflike	s_s.s_printflike
+#define s_scanflike	s_s.s_scanflike
 #define s_type		s_s.s_type
 #define s_next		s_s.s_next
 

Index: src/usr.bin/xlint/lint2/read.c
diff -u src/usr.bin/xlint/lint2/read.c:1.56 src/usr.bin/xlint/lint2/read.c:1.57
--- src/usr.bin/xlint/lint2/read.c:1.56	Sat Aug 28 12:21:53 2021
+++ src/usr.bin/xlint/lint2/read.c	Sun Aug 29 10:13:02 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: read.c,v 1.56 2021/08/28 12:21:53 rillig Exp $ */
+/* $NetBSD: read.c,v 1.57 2021/08/29 10:13:02 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: read.c,v 1.56 2021/08/28 12:21:53 rillig Exp $");
+__RCSID("$NetBSD: read.c,v 1.57 2021/08/29 10:13:02 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -407,14 +407,14 @@ decldef(pos_t *posp, const char *cp)
 			sym.s_inline = true;
 			break;
 		case 'o':
-			if (sym.s_osdef)
+			if (sym.s_old_style_function)
 				inperr("osdef");
-			sym.s_osdef = true;
+			sym.s_old_style_function = true;
 			break;
 		case 'r':
-			if (sym.s_rval)
-				inperr("rval");
-			sym.s_rval = true;
+			if (sym.s_function_has_return_value)
+				inperr("r");
+			sym.s_function_has_return_value = true;
 			break;
 		case 's':
 			if (sym.s_static)
@@ -432,22 +432,22 @@ decldef(pos_t *posp, const char *cp)
 			used = true;
 			break;
 		case 'v':
-			if (sym.s_va)
-				inperr("va");
-			sym.s_va = true;
-			sym.s_nva = parse_short(&cp);
+			if (sym.s_check_only_first_args)
+				inperr("v");
+			sym.s_check_only_first_args = true;
+			sym.s_check_num_args = parse_short(&cp);
 			break;
 		case 'P':
-			if (sym.s_prfl)
-				inperr("prfl");
-			sym.s_prfl = true;
-			sym.s_nprfl = parse_short(&cp);
+			if (sym.s_printflike)
+				inperr("P");
+			sym.s_printflike = true;
+			sym.s_printflike_arg = parse_short(&cp);
 			break;
 		case 'S':
-			if (sym.s_scfl)
-				inperr("scfl");
-			sym.s_scfl = true;
-			sym.s_nscfl = parse_short(&cp);
+			if (sym.s_scanflike)
+				inperr("S");
+			sym.s_scanflike = true;
+			sym.s_scanflike_arg = parse_short(&cp);
 			break;
 		}
 	}
@@ -507,11 +507,12 @@ decldef(pos_t *posp, const char *cp)
 	}
 
 	if (symp == NULL) {
-		/* allocsym does not reserve space for s_nva */
-		if (sym.s_va || sym.s_prfl || sym.s_scfl) {
+		if (sym.s_check_only_first_args ||
+		    sym.s_printflike || sym.s_scanflike) {
 			symp = xalloc(sizeof(*symp));
 			*symp = sym;
 		} else {
+			/* no need to allocate memory for unused members */
 			symp = xalloc(sizeof(symp->s_s));
 			symp->s_s = sym.s_s;
 		}

Reply via email to