aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2013-04-14 14:26:44 +0300
committerArnold D. Robbins <arnold@skeeve.com>2013-04-14 14:26:44 +0300
commit02d472d056684dd62921ec74eb212b84377046ef (patch)
treeefa3b5e1ef193ddc07cd73d62489a2ceb1ea7406
parent2f33b52ecd3b07f4c45cf64e6bade9b65c07e330 (diff)
downloadegawk-02d472d056684dd62921ec74eb212b84377046ef.tar.gz
egawk-02d472d056684dd62921ec74eb212b84377046ef.tar.bz2
egawk-02d472d056684dd62921ec74eb212b84377046ef.zip
Bug fix in awkgram.y:check_funcs.
-rw-r--r--ChangeLog5
-rw-r--r--awkgram.c7
-rw-r--r--awkgram.y7
3 files changed, 13 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index f4783237..0ca9258b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-14 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (check_funcs): Fix logic of test for called but
+ not defined warning. Thanks to Scott Deifik for the bug report.
+
2013-04-02 Arnold D. Robbins <arnold@skeeve.com>
* profile.c (print_lib_list): Send final newline to prof_fp
diff --git a/awkgram.c b/awkgram.c
index 31f80bc8..03a39e72 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -6901,17 +6901,18 @@ check_funcs()
for (i = 0; i < HASHSIZE; i++) {
for (fp = ftable[i]; fp != NULL; fp = fp->next) {
- if (fp->defined == 0 && ! fp->extension) {
#ifdef REALLYMEAN
- /* making this the default breaks old code. sigh. */
+ /* making this the default breaks old code. sigh. */
+ if (fp->defined == 0 && ! fp->extension) {
error(
_("function `%s' called but never defined"), fp->name);
errcount++;
+ }
#else
+ if (do_lint && fp->defined == 0 && ! fp->extension)
lintwarn(
_("function `%s' called but never defined"), fp->name);
#endif
- }
if (do_lint && fp->used == 0 && ! fp->extension) {
lintwarn(_("function `%s' defined but never called directly"),
diff --git a/awkgram.y b/awkgram.y
index 14520cd1..0d86d4e1 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -4353,17 +4353,18 @@ check_funcs()
for (i = 0; i < HASHSIZE; i++) {
for (fp = ftable[i]; fp != NULL; fp = fp->next) {
- if (fp->defined == 0 && ! fp->extension) {
#ifdef REALLYMEAN
- /* making this the default breaks old code. sigh. */
+ /* making this the default breaks old code. sigh. */
+ if (fp->defined == 0 && ! fp->extension) {
error(
_("function `%s' called but never defined"), fp->name);
errcount++;
+ }
#else
+ if (do_lint && fp->defined == 0 && ! fp->extension)
lintwarn(
_("function `%s' called but never defined"), fp->name);
#endif
- }
if (do_lint && fp->used == 0 && ! fp->extension) {
lintwarn(_("function `%s' defined but never called directly"),