diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2018-05-24 18:37:48 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2018-05-24 18:37:48 +0300 |
commit | 58cc32a6d4a179b3005f8e4fecbff932da681fba (patch) | |
tree | f7b47df0c35756b187b7efebdde644c8008717cd | |
parent | 524c41752a1043dce23fdb7e5893ad89c0944c92 (diff) | |
download | egawk-58cc32a6d4a179b3005f8e4fecbff932da681fba.tar.gz egawk-58cc32a6d4a179b3005f8e4fecbff932da681fba.tar.bz2 egawk-58cc32a6d4a179b3005f8e4fecbff932da681fba.zip |
Improve lint checking for statement of just a constant.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | awkgram.c | 2 | ||||
-rw-r--r-- | awkgram.y | 2 | ||||
-rw-r--r-- | test/ChangeLog | 4 | ||||
-rw-r--r-- | test/noeffect.awk | 4 | ||||
-rw-r--r-- | test/noeffect.ok | 3 |
6 files changed, 19 insertions, 2 deletions
@@ -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. @@ -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; } @@ -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 |