You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by James Peach <jp...@apache.org> on 2012/07/10 20:16:20 UTC
tserver-fedora-trunk buildbot break
Hi all,
So it seems that I have still broken the Fedora buildbot, http://ci.apache.org/builders/tserver-fedora-trunk/builds/1168:
CXX test_Vec.o
cc1plus: warnings being treated as errors
Vec.h: In function ‘int main(int, char**)’:
Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
The error is apparantly here, which is a bit confusing:
614 template <class C, class A, int S> inline void
615 Vec<C,A,S>::reserve(int x) {
616 if (x <= n)
617 return;
I tested that master builds fine on Fedora17 w/ gcc 4.7.0-5 and "make check" passes. Does anyone know what version of Fedora this buildbot is running?
J
Re: tserver-fedora-trunk buildbot break
Posted by James Peach <ja...@me.com>.
On 10/07/2012, at 3:17 PM, Alan M. Carroll <am...@thought-mesh.net> wrote:
> I did a bit of netsearching and I think I see the problem, although I don't have a good solution. It is a result of optimization in the call sequence in test_append that calls str.append(value,len) which calls reserve(length() + count). length() is inlined to a reference to n so the argument is treated as "n+count". This yields, in the reserve method at the bad line
>
> if (n+count <= n)
Yep, I thing you are right. It's a pretty atrocious error message :(
>
> which leads to the warning/error you see. I don't see how to disable the error, though.
Teaching Vec.h to use unsigned types makes the overflow defined, but I was hoping to be able to repro this before I went down that path ...
>
>
> Tuesday, July 10, 2012, 2:48:07 PM, you wrote:
>
>> On 10/07/2012, at 11:16 AM, James Peach <jp...@apache.org> wrote:
>
>>> Hi all,
>
>>> So it seems that I have still broken the Fedora buildbot, http://ci.apache.org/builders/tserver-fedora-trunk/builds/1168:
>
>>> CXX test_Vec.o
>
>>> cc1plus: warnings being treated as errors
>>> Vec.h: In function ‘int main(int, char**)’:
>>> Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
>>> Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
>
>>> The error is apparantly here, which is a bit confusing:
>
>>> 614 template <class C, class A, int S> inline void
>>> 615 Vec<C,A,S>::reserve(int x) {
>>> 616 if (x <= n)
>>> 617 return;
>
>>> I tested that master builds fine on Fedora17 w/ gcc 4.7.0-5 and "make check" passes. Does anyone know what version of Fedora this buildbot is running?
>
>> And everything's cool with Fedora 13 using gcc 4.4.5-2. Any clues gratefully accepted ...
>
>> J
>
Re: tserver-fedora-trunk buildbot break
Posted by "Alan M. Carroll" <am...@thought-mesh.net>.
I did a bit of netsearching and I think I see the problem, although I don't have a good solution. It is a result of optimization in the call sequence in test_append that calls str.append(value,len) which calls reserve(length() + count). length() is inlined to a reference to n so the argument is treated as "n+count". This yields, in the reserve method at the bad line
if (n+count <= n)
which leads to the warning/error you see. I don't see how to disable the error, though.
Tuesday, July 10, 2012, 2:48:07 PM, you wrote:
> On 10/07/2012, at 11:16 AM, James Peach <jp...@apache.org> wrote:
>> Hi all,
>> So it seems that I have still broken the Fedora buildbot, http://ci.apache.org/builders/tserver-fedora-trunk/builds/1168:
>> CXX test_Vec.o
>> cc1plus: warnings being treated as errors
>> Vec.h: In function ‘int main(int, char**)’:
>> Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
>> Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
>> The error is apparantly here, which is a bit confusing:
>> 614 template <class C, class A, int S> inline void
>> 615 Vec<C,A,S>::reserve(int x) {
>> 616 if (x <= n)
>> 617 return;
>> I tested that master builds fine on Fedora17 w/ gcc 4.7.0-5 and "make check" passes. Does anyone know what version of Fedora this buildbot is running?
> And everything's cool with Fedora 13 using gcc 4.4.5-2. Any clues gratefully accepted ...
> J
Re: tserver-fedora-trunk buildbot break
Posted by James Peach <jp...@apache.org>.
On 10/07/2012, at 11:16 AM, James Peach <jp...@apache.org> wrote:
> Hi all,
>
> So it seems that I have still broken the Fedora buildbot, http://ci.apache.org/builders/tserver-fedora-trunk/builds/1168:
>
> CXX test_Vec.o
>
> cc1plus: warnings being treated as errors
> Vec.h: In function ‘int main(int, char**)’:
> Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
> Vec.h:616: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
>
> The error is apparantly here, which is a bit confusing:
>
> 614 template <class C, class A, int S> inline void
> 615 Vec<C,A,S>::reserve(int x) {
> 616 if (x <= n)
> 617 return;
>
> I tested that master builds fine on Fedora17 w/ gcc 4.7.0-5 and "make check" passes. Does anyone know what version of Fedora this buildbot is running?
And everything's cool with Fedora 13 using gcc 4.4.5-2. Any clues gratefully accepted ...
J