Re: [patch] Fix some errors building with clang++ trunk.

From: Kinkie <gkinkie_at_gmail.com>
Date: Fri, 12 Aug 2011 13:34:45 +0200

Hi,
  Gnu++0x looks good, but then what about non-gnu compilers? Oh WHY do
they have to be strict ANSI? I curse thee, standards committee!

On 8/12/11, Pawel Worach <pawel.worach_at_gmail.com> wrote:
> On Aug 12, 2011, at 06:32, Amos Jeffries wrote:
>> On 12/08/11 08:14, Pawel Worach wrote:
>>> Hi!
>>> Here is patch for squid3 trunk that fixes a couple of compile errors with
>>> clang++ trunk.
>>> The hack in src/ChunkedCodingParser.cc gets rid of a warning that
>>> complains about a empty if statement.
>>> There is still an issue on FreeBSD where strtoll ends up undefined, I
>>> still have no idea what is going on there.
>>
>> Thank you. Applied with tweaks.
>>
>> The %Zu and main() changes won't work with some of the more pedantic
>> compilers. I've applied slightly different changes that we have found more
>> portable. Namely %lu, and int main(int,char*[])
>>
>>
>> Regarding strtoll(). That is probably related to our compat layer defining
>> an alternative strtoll() version which does not commit buffer overruns.
>
> The issue with *ll() is that long long and friends is not defined when the
> compiler runs in strict ansi mode on FreeBSD.
>
> % clang++ -Wall -std=c++0x -c t.cc
> t.cc:6:7: error: use of undeclared identifier 'strtoll'
> l = strtoll(argv[1], NULL, 10);
> ^
> 1 error generated.
> % clang++ -Wall -std=gnu++0x -c t.cc
> %
>
> So squids configure should probably set gnu++0x instead of c++0x (or 98) if
> long long stuff is used.
>
> configure also fails to detect this because it seems that the conftest for
> this is not built with -std=c++(98,0x).
>
> I was also pointed to this: http://gcc.gnu.org/ml/gcc/2000-06/msg00375.html
>
> --
> Pawel

-- 
Sent from my mobile device
    /kinkie
Received on Fri Aug 12 2011 - 11:34:53 MDT

This archive was generated by hypermail 2.2.0 : Fri Aug 12 2011 - 12:00:02 MDT