Module Name: src Committed By: rillig Date: Thu Sep 14 22:20:09 UTC 2023
Modified Files: src/usr.bin/xlint/lint1: cgram.y op.h oper.c scan.l Log Message: lint: remove pseudo operators INC and DEC These operators were not used in expressions, they were only used as additional token info. Use a plain bool instead. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.473 -r1.474 src/usr.bin/xlint/lint1/cgram.y cvs rdiff -u -r1.23 -r1.24 src/usr.bin/xlint/lint1/op.h cvs rdiff -u -r1.13 -r1.14 src/usr.bin/xlint/lint1/oper.c cvs rdiff -u -r1.139 -r1.140 src/usr.bin/xlint/lint1/scan.l 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/lint1/cgram.y diff -u src/usr.bin/xlint/lint1/cgram.y:1.473 src/usr.bin/xlint/lint1/cgram.y:1.474 --- src/usr.bin/xlint/lint1/cgram.y:1.473 Thu Sep 14 21:53:02 2023 +++ src/usr.bin/xlint/lint1/cgram.y Thu Sep 14 22:20:08 2023 @@ -1,5 +1,5 @@ %{ -/* $NetBSD: cgram.y,v 1.473 2023/09/14 21:53:02 rillig Exp $ */ +/* $NetBSD: cgram.y,v 1.474 2023/09/14 22:20:08 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: cgram.y,v 1.473 2023/09/14 21:53:02 rillig Exp $"); +__RCSID("$NetBSD: cgram.y,v 1.474 2023/09/14 22:20:08 rillig Exp $"); #endif #include <limits.h> @@ -138,6 +138,7 @@ is_either(const char *s, const char *a, val_t *y_val; sbuf_t *y_name; sym_t *y_sym; + bool y_inc; op_t y_op; scl_t y_scl; tspec_t y_tspec; @@ -168,6 +169,7 @@ is_either(const char *s, const char *a, debug_sym("", $$, ""); debug_pop_indented(indented); } <y_sym> +%printer { fprintf(yyo, "%s", $$ ? "++" : "--"); } <y_inc> %printer { fprintf(yyo, "%s", op_name($$)); } <y_op> %printer { fprintf(yyo, "%s", scl_name($$)); } <y_scl> %printer { fprintf(yyo, "%s", tspec_name($$)); } <y_tspec> @@ -197,7 +199,7 @@ is_either(const char *s, const char *a, %token T_LBRACE T_RBRACE T_LBRACK T_RBRACK T_LPAREN T_RPAREN %token T_POINT T_ARROW %token T_COMPLEMENT T_LOGNOT -%token <y_op> T_INCDEC +%token <y_inc> T_INCDEC %token T_SIZEOF %token T_BUILTIN_OFFSETOF %token T_TYPEOF @@ -551,7 +553,7 @@ postfix_expression: $$ = build_member_access($1, $2, $3, $4); } | postfix_expression T_INCDEC sys { - $$ = build_unary($2 == INC ? INCAFT : DECAFT, $3, $1); + $$ = build_unary($2 ? INCAFT : DECAFT, $3, $1); } | T_LPAREN type_name T_RPAREN { /* C99 6.5.2.5 "Compound literals" */ sym_t *tmp = mktempsym($2); @@ -643,7 +645,7 @@ argument_expression_list: unary_expression: postfix_expression | T_INCDEC sys unary_expression { - $$ = build_unary($1 == INC ? INCBEF : DECBEF, $2, $3); + $$ = build_unary($1 ? INCBEF : DECBEF, $2, $3); } | T_AMPER sys cast_expression { $$ = build_unary(ADDR, $2, $3); @@ -2244,6 +2246,7 @@ cgram_to_string(int token, YYSTYPE val) switch (token) { case T_INCDEC: + return val.y_inc ? "++" : "--"; case T_MULTIPLICATIVE: case T_ADDITIVE: case T_SHIFT: Index: src/usr.bin/xlint/lint1/op.h diff -u src/usr.bin/xlint/lint1/op.h:1.23 src/usr.bin/xlint/lint1/op.h:1.24 --- src/usr.bin/xlint/lint1/op.h:1.23 Thu Sep 14 21:08:12 2023 +++ src/usr.bin/xlint/lint1/op.h Thu Sep 14 22:20:08 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: op.h,v 1.23 2023/09/14 21:08:12 rillig Exp $ */ +/* $NetBSD: op.h,v 1.24 2023/09/14 22:20:08 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -66,8 +66,6 @@ typedef enum { POINT, NOT, COMPL, - INC, /* does not appear in the tree */ - DEC, /* does not appear in the tree */ INCBEF, DECBEF, INCAFT, Index: src/usr.bin/xlint/lint1/oper.c diff -u src/usr.bin/xlint/lint1/oper.c:1.13 src/usr.bin/xlint/lint1/oper.c:1.14 --- src/usr.bin/xlint/lint1/oper.c:1.13 Thu Sep 14 21:08:12 2023 +++ src/usr.bin/xlint/lint1/oper.c Thu Sep 14 22:20:08 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: oper.c,v 1.13 2023/09/14 21:08:12 rillig Exp $ */ +/* $NetBSD: oper.c,v 1.14 2023/09/14 22:20:08 rillig Exp $ */ /*- * Copyright (c) 2021 The NetBSD Foundation, Inc. @@ -68,8 +68,6 @@ const mod_t modtab[NOPS] = { {X,_,X,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,X, "." }, {_,X,X,X,_,_,_,X,X,_,_,_,_,_,_,_,_,X,_,X, "!" }, {_,_,_,_,_,X,_,_,X,X,_,_,_,_,_,_,_,X,X,X, "~" }, - {_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,X, "++" }, - {_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,X, "--" }, /* * The '++' and '--' operators are conceptually unary operators, but * lint implements them as binary operators due to the pre-multiplied Index: src/usr.bin/xlint/lint1/scan.l diff -u src/usr.bin/xlint/lint1/scan.l:1.139 src/usr.bin/xlint/lint1/scan.l:1.140 --- src/usr.bin/xlint/lint1/scan.l:1.139 Thu Jul 13 08:40:38 2023 +++ src/usr.bin/xlint/lint1/scan.l Thu Sep 14 22:20:08 2023 @@ -1,5 +1,5 @@ %{ -/* $NetBSD: scan.l,v 1.139 2023/07/13 08:40:38 rillig Exp $ */ +/* $NetBSD: scan.l,v 1.140 2023/09/14 22:20:08 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: scan.l,v 1.139 2023/07/13 08:40:38 rillig Exp $"); +__RCSID("$NetBSD: scan.l,v 1.140 2023/09/14 22:20:08 rillig Exp $"); #endif #include "lint1.h" @@ -87,8 +87,8 @@ FSUF ([fFlL]?[i]?) ">=" return lex_operator(T_RELATIONAL, GE); "<<" return lex_operator(T_SHIFT, SHL); ">>" return lex_operator(T_SHIFT, SHR); -"++" return lex_operator(T_INCDEC, INC); -"--" return lex_operator(T_INCDEC, DEC); +"++" return yylval.y_inc = true, T_INCDEC; +"--" return yylval.y_inc = false, T_INCDEC; "->" return T_ARROW; "." return T_POINT; "+" return lex_operator(T_ADDITIVE, PLUS);