<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>