summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2020-08-09 02:53:21 +0000
committerchristos <christos@NetBSD.org>2020-08-09 02:53:21 +0000
commitbc028bcc2cf0b6792be4066b4ea2e15ca0becb9a (patch)
treece910a0b927e30d7c23c09ee40a44c8b43bbf8fb
parent3a0f346aa79221a6730262f731a6a784d3bbf005 (diff)
Fix build; gcc does not like VLA's, so hard code the boundary
Use c99 initializers
-rw-r--r--usr.bin/make/enum.h6
-rw-r--r--usr.bin/make/var.c32
2 files changed, 25 insertions, 13 deletions
diff --git a/usr.bin/make/enum.h b/usr.bin/make/enum.h
index c47b9ef0196..7979c0cb1b8 100644
--- a/usr.bin/make/enum.h
+++ b/usr.bin/make/enum.h
@@ -1,4 +1,4 @@
-/* $NetBSD: enum.h,v 1.2 2020/08/08 14:43:28 rillig Exp $ */
+/* $NetBSD: enum.h,v 1.3 2020/08/09 02:53:21 christos Exp $ */
/*
Copyright (c) 2020 Roland Illig <rillig@NetBSD.org>
@@ -59,8 +59,10 @@ const char *Enum_ToString(char *, size_t, int, const EnumToStringSpec *);
#v1 ENUM__SEP ENUM__JOIN_6(v2, v3, v4, v5, v6, v7)
#define ENUM__RTTI(typnam, specs, joined) \
- static const EnumToStringSpec typnam ## _ ## ToStringSpecs[] = specs; \
+ static const EnumToStringSpec typnam ## _ ## ToStringSpecs[] = specs;
+#if 0
static const size_t typnam ## _ ## ToStringSize = sizeof joined
+#endif
#define ENUM__SPEC(v) { v, #v }
diff --git a/usr.bin/make/var.c b/usr.bin/make/var.c
index ff06c8a55fa..b82688eed4a 100644
--- a/usr.bin/make/var.c
+++ b/usr.bin/make/var.c
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $ */
+/* $NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $";
+static char rcsid[] = "$NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: var.c,v 1.434 2020/08/08 19:13:39 rillig Exp $");
+__RCSID("$NetBSD: var.c,v 1.435 2020/08/09 02:53:21 christos Exp $");
#endif
#endif /* not lint */
#endif
@@ -2979,6 +2979,7 @@ ApplyModifier_SysV(const char **pp, ApplyModifiersState *st)
#endif
/* Apply any modifiers (such as :Mpattern or :@var@loop@ or :Q or ::=value). */
+
static char *
ApplyModifiers(
const char **pp, /* the parsing position, updated upon return */
@@ -2991,9 +2992,18 @@ ApplyModifiers(
void ** const freePtr /* free this after using the return value */
) {
ApplyModifiersState st = {
- startc, endc, v, ctxt, eflags,
- val, NULL, '\0', ' ', FALSE
- };
+ .startc = startc,
+ .endc = endc,
+ .v = v,
+ .ctxt = ctxt,
+ .eflags = eflags,
+ .val = val,
+ .newVal = NULL,
+ .missing_delim = '\0',
+ .sep = ' ',
+ .oneBigWord = FALSE
+ }
+ ;
const char *p;
const char *mod;
ApplyModifierResult res;
@@ -3054,8 +3064,8 @@ ApplyModifiers(
mod = p;
if (DEBUG(VAR)) {
- char vflags_str[VarFlags_ToStringSize];
- char eflags_str[VarEvalFlags_ToStringSize];
+ char vflags_str[2048];
+ char eflags_str[2048];
Boolean is_single_char = mod[0] != '\0' &&
(mod[1] == endc || mod[1] == ':');
@@ -3201,8 +3211,8 @@ ApplyModifiers(
goto bad_modifier;
if (DEBUG(VAR)) {
- char eflags_str[VarEvalFlags_ToStringSize];
- char vflags_str[VarFlags_ToStringSize];
+ char eflags_str[2048];
+ char vflags_str[2048];
const char *q = st.newVal == var_Error ? "" : "\"";
const char *newVal = st.newVal == var_Error ? "error" : st.newVal;
@@ -3338,7 +3348,7 @@ Var_Parse(const char * const str, GNode *ctxt, VarEvalFlags eflags,
const char *extramodifiers;
Var *v;
char *nstr;
- char eflags_str[VarEvalFlags_ToStringSize];
+ char eflags_str[2048];
VAR_DEBUG("%s: %s with %s\n", __func__, str,
Enum_ToString(eflags_str, sizeof eflags_str, eflags,