summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/parser.c5
-rw-r--r--src/system.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/src/parser.c b/src/parser.c
index 32ed044..e891d31 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -851,7 +851,8 @@ readtoken1(int firstc, char const *syntax, char *eofmark, int striptabs)
 	int parenlevel;	/* levels of parens in arithmetic */
 	int dqvarnest;	/* levels of variables expansion within double quotes */
 	int oldstyle;
-	char const *prevsyntax;	/* syntax before arithmetic */
+	/* syntax before arithmetic */
+	char const *uninitialized_var(prevsyntax);
 
 	startlinno = plinno;
 	dblquote = 0;
@@ -1285,7 +1286,7 @@ parsebackq: {
 	union node *n;
 	char *str;
 	size_t savelen;
-	int saveprompt;
+	int uninitialized_var(saveprompt);
 
 	str = NULL;
 	savelen = out - (char *)stackblock();
diff --git a/src/system.h b/src/system.h
index b8853e6..17a9533 100644
--- a/src/system.h
+++ b/src/system.h
@@ -97,3 +97,9 @@ static inline int killpg(pid_t pid, int signal)
 #define _SC_CLK_TCK 2
 long sysconf(int) __attribute__((__noreturn__));
 #endif
+
+/*
+ * A trick to suppress uninitialized variable warning without generating any
+ * code
+ */
+#define uninitialized_var(x) x = x