<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hello Manish,<br>
    <br>
    Thanks for reporting this again and digging into it a little deeper.
    I've created a fix which solves the problem as seen by Tomas and
    will include it in the R16B02 release. I'll be testing the fix over
    the weekend and hopefully it will be visible in maint on github by
    early next week. <br>
    <br>
    Lukas<br>
    <br>
    On 15/08/13 20:43, Manish Singh wrote:<br>
    <blockquote
cite="mid:CAHoRzZKrHmrGAjC8NVg=Zd_d9E_NJDb5XYf4xpGJwjjT=3ttHA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>I've also run into this problem:<br>
            <br>
            <a moz-do-not-send="true"
              href="http://erlang.org/pipermail/erlang-bugs/2013-July/003674.html">http://erlang.org/pipermail/erlang-bugs/2013-July/003674.html</a><br>
            <br>
          </div>
          At first I thought it was a gcc bug, but <a
            moz-do-not-send="true"
            href="http://gcc.gnu.org/bugs/#report">http://gcc.gnu.org/bugs/#report</a>
          says "if compiling with -fno-strict-aliasing -fwrapv
          -fno-aggressive-loop-optimizations makes a difference, your
          code probably is not correct." Compiling efile_drv.c with
          -fno-aggressive-loop-optimizations makes the problem go away.<br>
          <br>
        </div>
        <div>With -Wextra, there are warnings about signed/unsigned
          comparisons, which might be causing this:<br>
          <br>
          drivers/common/efile_drv.c:3749:14: note: in expansion of
          macro ‘EV_GET_UINT64’<br>
                if (   !EV_GET_UINT64(ev,
          &d->c.preadv.offsets[i-1], &p, &q)<br>
                        ^<br>
          drivers/common/efile_drv.c:590:30: warning: comparison between
          signed and unsigned integer expressions [-Wsign-compare]<br>
                   *(pp) = (    *(pp)+8 <
          (ev)->iov[*(qp)].iov_len   \<br>
                                        ^<br>
          drivers/common/efile_drv.c:3749:14: note: in expansion of
          macro ‘EV_GET_UINT64’<br>
                if (   !EV_GET_UINT64(ev,
          &d->c.preadv.offsets[i-1], &p, &q)<br>
                        ^<br>
          drivers/common/efile_drv.c:564:14: warning: comparison between
          signed and unsigned integer expressions [-Wsign-compare]<br>
               (*(pp)+4 <=
          (ev)->iov[*(qp)].iov_len                  \<br>
                        ^<br>
          drivers/common/efile_drv.c:3750:7: note: in expansion of macro
          ‘EV_GET_UINT32’<br>
             || !EV_GET_UINT32(ev, &sizeH, &p, &q)<br>
                 ^<br>
          drivers/common/efile_drv.c:569:30: warning: comparison between
          signed and unsigned integer expressions [-Wsign-compare]<br>
                   *(pp) = (    *(pp)+4 <
          (ev)->iov[*(qp)].iov_len   \<br>
                                        ^<br>
          drivers/common/efile_drv.c:3750:7: note: in expansion of macro
          ‘EV_GET_UINT32’<br>
             || !EV_GET_UINT32(ev, &sizeH, &p, &q)<br>
                 ^<br>
          drivers/common/efile_drv.c:564:14: warning: comparison between
          signed and unsigned integer expressions [-Wsign-compare]<br>
               (*(pp)+4 <=
          (ev)->iov[*(qp)].iov_len                  \<br>
                        ^<br>
          drivers/common/efile_drv.c:3751:7: note: in expansion of macro
          ‘EV_GET_UINT32’<br>
             || !EV_GET_UINT32(ev, &sizeL, &p, &q)) {<br>
                 ^<br>
          drivers/common/efile_drv.c:569:30: warning: comparison between
          signed and unsigned integer expressions [-Wsign-compare]<br>
                   *(pp) = (    *(pp)+4 <
          (ev)->iov[*(qp)].iov_len   \<br>
                                        ^<br>
          drivers/common/efile_drv.c:3751:7: note: in expansion of macro
          ‘EV_GET_UINT32’<br>
             || !EV_GET_UINT32(ev, &sizeL, &p, &q)) {<br>
                 ^<br>
          drivers/common/efile_drv.c:581:14: warning: comparison between
          signed and unsigned integer expressions [-Wsign-compare]<br>
               (*(pp)+8 <=
          (ev)->iov[*(qp)].iov_len                  \<br>
          <br>
        </div>
        <div>-Manish<br>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
erlang-bugs mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-bugs@erlang.org">erlang-bugs@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-bugs">http://erlang.org/mailman/listinfo/erlang-bugs</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>