This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
utf8.c: Silence compiler warning
authorKarl Williamson <khw@cpan.org>
Fri, 30 May 2014 00:43:21 +0000 (18:43 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 30 May 2014 00:58:20 +0000 (18:58 -0600)
This was brought to my attention by Jarkko Hietaniemi.  The compiler was
complaining that a variable could be used uninitialized.  In practice
this doesn't happen, as it would only happen on bad data, and Perl
itself generates the data used.  (I suppose if the data got corrupted,
it could happen.)  This commit initializes the value unconditionally,
which allows a conditional setting of it to be removed.

utf8.c

diff --git a/utf8.c b/utf8.c
index 36ee737..3ed4f3a 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -2997,6 +2997,7 @@ S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val,
     /* Get the first number on the line: the range minimum */
     numlen = lend - l;
     *min = grok_hex((char *)l, &numlen, &flags, NULL);
+    *max = *min;    /* So can never return without setting max */
     if (numlen)            /* If found a hex number, position past it */
        l += numlen;
     else if (nl) {         /* Else, go handle next line, if any */
@@ -3048,7 +3049,6 @@ S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val,
     }
     else { /* Nothing following range min, should be single element with no
              mapping expected */
-       *max = *min;
        if (wants_value) {
            *val = 0;
            if (typeto) {