Re: abs(long long)

2012-10-03 Thread Marc Glisse
On Wed, 3 Oct 2012, Gabriel Dos Reis wrote: On Tue, Oct 2, 2012 at 1:53 PM, Marc Glisse wrote: * include/c_std/cstdlib (abs(long long)): Define with __builtin_llabs when we have long long. (abs(__int128)): Define when we have __int128. This change is OK Thanks, I'

Re: abs(long long)

2012-10-03 Thread Gabriel Dos Reis
On Tue, Oct 2, 2012 at 1:53 PM, Marc Glisse wrote: >> See what we did in c/cmath and c_global/cmath. > > > Note that llabs is quite different from asin. Is asin the function you took out of c/cmath? > __builtin_llabs generates an > ABS_EXPR, which will later be expanded either to a special ins

Re: abs(long long)

2012-10-02 Thread Marc Glisse
On Tue, 2 Oct 2012, Gabriel Dos Reis wrote: Whining on this list about libstdc++ internal macros and your dislike of them is not going to produce anything today or tomorrow. Other compilers using libstdc++ was just an extra argument. Even if g++ was the only compiler on earth, I would still c

Re: abs(long long)

2012-10-02 Thread Gabriel Dos Reis
On Tue, Oct 2, 2012 at 8:07 AM, Marc Glisse wrote: > Or do you mean: > always call __builtin_llabs (whether we have an llabs or not), and let the > compiler replace it with either (x<0)?-x:x or a library call (I assume it > never does that unless it has seen a corresponding declaration)? See wha

Re: abs(long long)

2012-10-02 Thread Gabriel Dos Reis
On Tue, Oct 2, 2012 at 9:34 AM, Daniel Krügler wrote: > 2012/10/2 Marc Glisse : >> Here I am talking of a library issue: the wording that says that there are >> sufficient overloads such that integer types call the double version of math >> functions. It is fairly obvious that it doesn't apply to

Re: abs(long long)

2012-10-02 Thread Gabriel Dos Reis
On Tue, Oct 2, 2012 at 8:07 AM, Marc Glisse wrote: >>> The library installed by the system was compiled with g++, and is then >>> used >>> with clang++. If we can avoid installing 2 config.h files to make that >>> work... >> >> >> Two things: >> 1. that is clearly a clang problem. I don't think

Re: abs(long long)

2012-10-02 Thread Daniel Krügler
2012/10/2 Marc Glisse : > Here I am talking of a library issue: the wording that says that there are > sufficient overloads such that integer types call the double version of math > functions. It is fairly obvious that it doesn't apply to abs(long) for > instance which has an explicit overload. For

Re: abs(long long)

2012-10-02 Thread Marc Glisse
On Tue, 2 Oct 2012, Gabriel Dos Reis wrote: I understand that it is originally a library issue, but I don't think it makes sense to resolve it in isolation of that core issue. They seem mostly orthogonal to me, since the library only uses an informal language describing the desired outcome an

Re: abs(long long)

2012-10-02 Thread Gabriel Dos Reis
On Tue, Oct 2, 2012 at 4:21 AM, Marc Glisse wrote: > On Tue, 2 Oct 2012, Gabriel Dos Reis wrote: > >> On Tue, Oct 2, 2012 at 3:57 AM, Marc Glisse wrote: >>> >>> (Forgot libstdc++...) >>> >>> >>> Hello, >>> >>> here is the patch from PR54686. Several notes: >>> >>> * I'll have to ask experts if st

Re: abs(long long)

2012-10-02 Thread Marc Glisse
On Tue, 2 Oct 2012, Gabriel Dos Reis wrote: On Tue, Oct 2, 2012 at 3:57 AM, Marc Glisse wrote: (Forgot libstdc++...) Hello, here is the patch from PR54686. Several notes: * I'll have to ask experts if std::abs(unsigned) (yes, a weird thing to do, but still) is meant to return a double...

Re: abs(long long)

2012-10-02 Thread Gabriel Dos Reis
On Tue, Oct 2, 2012 at 3:57 AM, Marc Glisse wrote: > (Forgot libstdc++...) > > > Hello, > > here is the patch from PR54686. Several notes: > > * I'll have to ask experts if std::abs(unsigned) (yes, a weird thing to do, > but still) is meant to return a double... don't we have a core issue about p