Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/xlint/lint1 lint: extract fallback_symbol from new_n...
details: https://anonhg.NetBSD.org/src/rev/36b4a7ca3c03
branches: trunk
changeset: 1017965:36b4a7ca3c03
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Jan 17 14:37:48 2021 +0000
description:
lint: extract fallback_symbol from new_name_node
The code was too close to the right margin, causing unnatural line
breaks. Furthermore it was getting too long and detailed.
diffstat:
usr.bin/xlint/lint1/tree.c | 88 ++++++++++++++++++++++++---------------------
1 files changed, 47 insertions(+), 41 deletions(-)
diffs (116 lines):
diff -r aeb4d43ed1ab -r 36b4a7ca3c03 usr.bin/xlint/lint1/tree.c
--- a/usr.bin/xlint/lint1/tree.c Sun Jan 17 14:28:25 2021 +0000
+++ b/usr.bin/xlint/lint1/tree.c Sun Jan 17 14:37:48 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: tree.c,v 1.166 2021/01/17 14:26:31 rillig Exp $ */
+/* $NetBSD: tree.c,v 1.167 2021/01/17 14:37:48 rillig Exp $ */
/*
* Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: tree.c,v 1.166 2021/01/17 14:26:31 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.167 2021/01/17 14:37:48 rillig Exp $");
#endif
#include <float.h>
@@ -204,6 +204,50 @@
return n;
}
+static void
+fallback_symbol(sym_t *sym)
+{
+
+ if (Tflag && strcmp(sym->s_name, "__lint_false") == 0) {
+ sym->s_scl = CTCONST; /* close enough */
+ sym->s_type = gettyp(BOOL);
+ sym->s_value.v_tspec = BOOL;
+ sym->s_value.v_ansiu = false;
+ sym->s_value.v_quad = 0;
+ return;
+ }
+
+ if (Tflag && strcmp(sym->s_name, "__lint_true") == 0) {
+ sym->s_scl = CTCONST; /* close enough */
+ sym->s_type = gettyp(BOOL);
+ sym->s_value.v_tspec = BOOL;
+ sym->s_value.v_ansiu = false;
+ sym->s_value.v_quad = 1;
+ return;
+ }
+
+ if (blklev > 0 && (strcmp(sym->s_name, "__FUNCTION__") == 0 ||
+ strcmp(sym->s_name, "__PRETTY_FUNCTION__") == 0)) {
+ /* __FUNCTION__/__PRETTY_FUNCTION__ is a GCC extension */
+ gnuism(316);
+ sym->s_type = incref(gettyp(CHAR), PTR);
+ sym->s_type->t_const = true;
+ return;
+ }
+
+ if (blklev > 0 && strcmp(sym->s_name, "__func__") == 0) {
+ if (!Sflag)
+ /* __func__ is a C9X feature */
+ warning(317);
+ sym->s_type = incref(gettyp(CHAR), PTR);
+ sym->s_type->t_const = true;
+ return;
+ }
+
+ /* %s undefined */
+ error(99, sym->s_name);
+}
+
/*
* Create a node for a name (symbol table entry).
* ntok is the token which follows the name.
@@ -227,45 +271,7 @@
*/
sym->s_type = incref(sym->s_type, FUNC);
} else {
- if (Tflag && strcmp(sym->s_name, "__lint_false") == 0) {
- sym->s_scl = CTCONST; /* close enough */
- sym->s_type = gettyp(BOOL);
- sym->s_value.v_tspec = BOOL;
- sym->s_value.v_ansiu = false;
- sym->s_value.v_quad = 0;
- } else if (Tflag &&
- strcmp(sym->s_name, "__lint_true") == 0) {
- sym->s_scl = CTCONST; /* close enough */
- sym->s_type = gettyp(BOOL);
- sym->s_value.v_tspec = BOOL;
- sym->s_value.v_ansiu = false;
- sym->s_value.v_quad = 1;
- } else if (blklev == 0) {
- /* %s undefined */
- error(99, sym->s_name);
- } else {
- bool fixtype;
- if (strcmp(sym->s_name, "__FUNCTION__") == 0 ||
- strcmp(sym->s_name, "__PRETTY_FUNCTION__")
- == 0) {
- /* __FUNCTION__/__PRETTY_FUNCTION... */
- gnuism(316);
- fixtype = true;
- } else if (strcmp(sym->s_name, "__func__") == 0) {
- if (!Sflag)
- /* __func__ is a C9X feature */
- warning(317);
- fixtype = true;
- } else {
- /* %s undefined */
- error(99, sym->s_name);
- fixtype = false;
- }
- if (fixtype) {
- sym->s_type = incref(gettyp(CHAR), PTR);
- sym->s_type->t_const = true;
- }
- }
+ fallback_symbol(sym);
}
}
Home |
Main Index |
Thread Index |
Old Index