On Fri, 5 Jul 2013 08:36:34 -0400
Erik Schnetter <[email protected]> wrote:

> On Fri, Jul 5, 2013 at 5:47 AM, O. Hartmann
> <[email protected]>wrote:
> 
> > On Thu, 4 Jul 2013 15:30:35 -0400
> > Erik Schnetter <[email protected]> wrote:
> >
> > > I have, once again, uploaded a new release candidate tarball. This
> > > mainly addresses build problems caused by inconsistencies/errors
> > > in the kernel library.
> > >
> > > The 0.8 release branch now uses a simplified logic for letting
> > > Vecmathlib override kernel functions. Also, Vecmathlib has been
> > > updated, and some minor errors have been corrected.
> > >
> > > -erik
> > >
> >
> > I receive the error message below on FreeBSD 10.0-CURRENT (CLANG 3.3
> > compiler):
> >
> > [...]
> >
> > /usr/bin/clang++ -Xclang -ffake-address-space-map -std=c++11
> > -fno-exceptions -emit-llvm -ffp-contract=off  -stdlib=libc++ -c
> > -target amd64-portbld-freebsd10.0 -o
> > acosh.cc.bc ../vecmathlib/pocl/acosh.cc
> > -include ../../../include/x86_64/types.h In file included
> > from ../vecmathlib/pocl/acos.cc:3: In file included
> > from ../vecmathlib/pocl/pocl-compat.h:8: In file included
> > from ../vecmathlib/pocl/../vecmathlib.h:89: 
> > ../vecmathlib/pocl/../vec_sse_double1.h:451:38:
> > error: conversion from 'int' to 'boolvec_t' (aka 'boolvec<real_t,
> > size>') is ambiguous
> 
> 
> std::isnan() is supposed to return bool in C++11. Apparently it
> returns int on your platform? This is strange. Can you check whether
> this is indeed the case, given the options -std=c++11 and
> -stdlib=libc++ you are using?
> 
> -erik
> 

As far as I can examine from the sources, isnan() returns bool:

(header cmath of libc++ sources):

[...]
//  C99

bool signbit(arithmetic x);

int fpclassify(arithmetic x);

bool isfinite(arithmetic x);
bool isinf(arithmetic x);
bool isnan(arithmetic x);
bool isnormal(arithmetic x);

bool isgreater(arithmetic x, arithmetic y);
bool isgreaterequal(arithmetic x, arithmetic y);
bool isless(arithmetic x, arithmetic y);
bool islessequal(arithmetic x, arithmetic y);
bool islessgreater(arithmetic x, arithmetic y);
bool isunordered(arithmetic x, arithmetic y);
[...]

So, there must be something different triggering the error using CLANG
with -std=libc++ as provided by FreeBSD.

I'm no developer, so excuse my possibly naive view on things. Is there
a way to examine the behaviour of the compiler's return value
using -std=c++11 others than examining the sources? It might be
possible that I made a mistake ...

Oliver

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
pocl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pocl-devel

Reply via email to