Mon Jul 27 22:21:29 2020 UTC ()
make(1): remove unnecessary variable assignment

It is not the job of an ApplyModifier function to directly manipulate the
final result of the ApplyModifiers function.  In fact, the resulting
pointer was overwritten unconditionally, in such an obvious way that the
compiler could have detected this.  GCC 5 didn't though, which reduces
the code size a bit.


(rillig)
diff -r1.341 -r1.342 src/usr.bin/make/var.c

cvs diff -r1.341 -r1.342 src/usr.bin/make/var.c (expand / switch to unified diff)

--- src/usr.bin/make/var.c 2020/07/27 22:02:26 1.341
+++ src/usr.bin/make/var.c 2020/07/27 22:21:29 1.342
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: var.c,v 1.341 2020/07/27 22:02:26 rillig Exp $ */ 1/* $NetBSD: var.c,v 1.342 2020/07/27 22:21:29 rillig Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 1988, 1989, 1990, 1993 4 * Copyright (c) 1988, 1989, 1990, 1993
5 * The Regents of the University of California. All rights reserved. 5 * The Regents of the University of California. All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to Berkeley by 7 * This code is derived from software contributed to Berkeley by
8 * Adam de Boor. 8 * Adam de Boor.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -59,34 +59,34 @@ @@ -59,34 +59,34 @@
59 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 59 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
60 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 60 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
61 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 61 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
62 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 62 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
63 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 63 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
64 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 64 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
65 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 65 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
66 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 66 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
67 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 67 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
68 * SUCH DAMAGE. 68 * SUCH DAMAGE.
69 */ 69 */
70 70
71#ifndef MAKE_NATIVE 71#ifndef MAKE_NATIVE
72static char rcsid[] = "$NetBSD: var.c,v 1.341 2020/07/27 22:02:26 rillig Exp $"; 72static char rcsid[] = "$NetBSD: var.c,v 1.342 2020/07/27 22:21:29 rillig Exp $";
73#else 73#else
74#include <sys/cdefs.h> 74#include <sys/cdefs.h>
75#ifndef lint 75#ifndef lint
76#if 0 76#if 0
77static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; 77static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94";
78#else 78#else
79__RCSID("$NetBSD: var.c,v 1.341 2020/07/27 22:02:26 rillig Exp $"); 79__RCSID("$NetBSD: var.c,v 1.342 2020/07/27 22:21:29 rillig Exp $");
80#endif 80#endif
81#endif /* not lint */ 81#endif /* not lint */
82#endif 82#endif
83 83
84/*- 84/*-
85 * var.c -- 85 * var.c --
86 * Variable-handling functions 86 * Variable-handling functions
87 * 87 *
88 * Interface: 88 * Interface:
89 * Var_Set Set the value of a variable in the given 89 * Var_Set Set the value of a variable in the given
90 * context. The variable is created if it doesn't 90 * context. The variable is created if it doesn't
91 * yet exist. 91 * yet exist.
92 * 92 *
@@ -2500,27 +2500,26 @@ ApplyModifier_Regex(const char *mod, App @@ -2500,27 +2500,26 @@ ApplyModifier_Regex(const char *mod, App
2500 continue; 2500 continue;
2501 case 'W': 2501 case 'W':
2502 oneBigWord = TRUE; 2502 oneBigWord = TRUE;
2503 continue; 2503 continue;
2504 } 2504 }
2505 break; 2505 break;
2506 } 2506 }
2507 2507
2508 st->termc = *st->cp; 2508 st->termc = *st->cp;
2509 2509
2510 int error = regcomp(&args.re, re, REG_EXTENDED); 2510 int error = regcomp(&args.re, re, REG_EXTENDED);
2511 free(re); 2511 free(re);
2512 if (error) { 2512 if (error) {
2513 *st->lengthPtr = st->cp - st->start + 1; 
2514 VarREError(error, &args.re, "RE substitution error"); 2513 VarREError(error, &args.re, "RE substitution error");
2515 free(args.replace); 2514 free(args.replace);
2516 return FALSE; 2515 return FALSE;
2517 } 2516 }
2518 2517
2519 args.nsub = args.re.re_nsub + 1; 2518 args.nsub = args.re.re_nsub + 1;
2520 if (args.nsub < 1) 2519 if (args.nsub < 1)
2521 args.nsub = 1; 2520 args.nsub = 1;
2522 if (args.nsub > 10) 2521 if (args.nsub > 10)
2523 args.nsub = 10; 2522 args.nsub = 10;
2524 st->newStr = ModifyWords(st->ctxt, st->sep, oneBigWord, st->nstr, 2523 st->newStr = ModifyWords(st->ctxt, st->sep, oneBigWord, st->nstr,
2525 ModifyWord_SubstRegex, &args); 2524 ModifyWord_SubstRegex, &args);
2526 regfree(&args.re); 2525 regfree(&args.re);