Module Name:    src
Committed By:   christos
Date:           Sun Aug  9 02:53:21 UTC 2020

Modified Files:
        src/usr.bin/make: enum.h var.c

Log Message:
Fix build; gcc does not like VLA's, so hard code the boundary
Use c99 initializers


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/enum.h
cvs rdiff -u -r1.434 -r1.435 src/usr.bin/make/var.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/make/enum.h
diff -u src/usr.bin/make/enum.h:1.2 src/usr.bin/make/enum.h:1.3
--- src/usr.bin/make/enum.h:1.2	Sat Aug  8 10:43:28 2020
+++ src/usr.bin/make/enum.h	Sat Aug  8 22:53:21 2020
@@ -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 <ril...@netbsd.org>
@@ -59,8 +59,10 @@ const char *Enum_ToString(char *, size_t
 	#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 }
 

Index: src/usr.bin/make/var.c
diff -u src/usr.bin/make/var.c:1.434 src/usr.bin/make/var.c:1.435
--- src/usr.bin/make/var.c:1.434	Sat Aug  8 15:13:39 2020
+++ src/usr.bin/make/var.c	Sat Aug  8 22:53:21 2020
@@ -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, Appl
 #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 
     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,

Reply via email to