In testing on Darwin (OSX), sometimes warnings reported from M4 code
reach autom4te with no stack trace at all, causing the perl script to
crash with a “use of uninitialized value” error. The root cause of
the problem is not clear to me, but the script certainly shouldn’t
crash.
Problem found by Jannick <thirdedition@gmx.net>.
* bin/autom4te.in: When processing warnings, make sure $stacktrace is
defined.
# In particular, m4_warn guarantees that either $stackdump is empty, or
# it consists of lines where only the last line ends in "top level".
my ($cat, $loc, $msg, $stacktrace) = split ('::', $_, 4);
+ # There might not have been a stacktrace.
+ $stacktrace = '' unless defined $stacktrace;
msg $cat, $loc, $msg,
partial => ($stacktrace =~ /top level$/) + 0;
for (split /\n/, $stacktrace)