aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--awkgram.c2
-rw-r--r--awkgram.y2
-rw-r--r--test/ChangeLog4
-rw-r--r--test/noeffect.awk4
-rw-r--r--test/noeffect.ok3
6 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 451f1c52..cfeb251b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-05-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (add_lint): For no-effect case, also check for
+ Op_push_i. Makes statements consisting of a single constant
+ trigger the warning.
+
2018-05-23 Arnold D. Robbins <arnold@skeeve.com>
* config.guess, config.sub: Updated from GNULIB.
diff --git a/awkgram.c b/awkgram.c
index 13a7be70..493109fe 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -8326,7 +8326,7 @@ add_lint(INSTRUCTION *list, LINTTYPE linttype)
}
}
- if (ip->opcode == Op_push) { /* run-time warning */
+ if (ip->opcode == Op_push || ip->opcode == Op_push_i) { /* run-time warning */
list_append(list, instruction(Op_lint));
list->lasti->lint_type = linttype;
}
diff --git a/awkgram.y b/awkgram.y
index e1c75e9f..bc8b4a6f 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -5906,7 +5906,7 @@ add_lint(INSTRUCTION *list, LINTTYPE linttype)
}
}
- if (ip->opcode == Op_push) { /* run-time warning */
+ if (ip->opcode == Op_push || ip->opcode == Op_push_i) { /* run-time warning */
list_append(list, instruction(Op_lint));
list->lasti->lint_type = linttype;
}
diff --git a/test/ChangeLog b/test/ChangeLog
index 3f22e1ce..a2575200 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+2018-05-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * noeffect.awk, noeffect.ok: Updated.
+
2018-05-23 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (EXTRA_DIST): Add files for spacere.
diff --git a/test/noeffect.awk b/test/noeffect.awk
index 472c408e..4be76b1e 100644
--- a/test/noeffect.awk
+++ b/test/noeffect.awk
@@ -3,4 +3,8 @@ BEGIN {
s + 1
;;
"s" 1
+ "a"
+ 42
+ q = 42
+ q
}
diff --git a/test/noeffect.ok b/test/noeffect.ok
index 6a0cc752..9778a4bb 100644
--- a/test/noeffect.ok
+++ b/test/noeffect.ok
@@ -3,3 +3,6 @@ gawk: noeffect.awk:3: warning: statement may have no effect
gawk: noeffect.awk:5: warning: statement may have no effect
gawk: noeffect.awk:2: warning: reference to uninitialized variable `s'
gawk: noeffect.awk:3: warning: reference to uninitialized variable `s'
+gawk: noeffect.awk:6: warning: statement has no effect
+gawk: noeffect.awk:7: warning: statement has no effect
+gawk: noeffect.awk:9: warning: statement has no effect