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