<div dir="ltr"><div>Yeah, looks like the resource dir issue isn't it (btw you can pass the -resource-dir option instead of -I in order to precisely match the behavior, but -I is usually enough).<br><br></div><div>The problem appears to be due to __gnu_cxx::__numeric_traits_integer being instantiated with a floating point type... can you look at that code path to see how it is getting there? Maybe it is relying on a particular compiler intrinsic that clang is not treating the same as GCC (or doesn't support?)?<br></div><div><br></div>-- Sean Silva<br><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 26, 2015 at 11:45 AM, Peter Stirling <span dir="ltr"><<a href="mailto:peter@pjstirling.plus.com" target="_blank">peter@pjstirling.plus.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Some tests that I've done:<br>
<br>
First to investigate what is said by -v:<br>
<br>
[peter@fred llvm]$ which clang++<br>
~/Programming/unix-built/clang/bin/clang++<br>
[peter@fred llvm]$ clang++ -v<br>
clang version 3.7.0 (trunk 233281)<br>
Target: x86_64-unknown-linux-gnu<br>
Thread model: posix<br>
Found candidate GCC installation:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2<br>
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.9.2<br>
Candidate multilib: .;@m64<br>
Candidate multilib: 32;@m32<br>
Selected multilib: .;@m64<br>
<br>
[peter@fred llvm]$ which quaff<br>
~/Programming/unix-built/clang/bin/quaff<br>
[peter@fred llvm]$ quaff -- -v<br>
clang version 3.7.0 (trunk 233281)<br>
Target: x86_64-unknown-linux-gnu<br>
Thread model: posix<br>
Found candidate GCC installation:
/../lib/gcc/x86_64-redhat-linux/4.9.2<br>
Found candidate GCC installation:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2<br>
Selected GCC installation: /../lib/gcc/x86_64-redhat-linux/4.9.2<br>
Candidate multilib: .;@m64<br>
Candidate multilib: 32;@m32<br>
Selected multilib: .;@m64<br>
<br>
/lib is a symlink to /usr/lib, so there is really only one
installation, but I'm not sure why they don't use the same list,
either both should have one candidate, or both should have two.<br>
<br>
<br>
I then tried (with only failure to show for it) a bunch of
combinations of -isystem, and -I for the directory<br>
<br>
/home/peter/Programming/unix-built/clang/lib/clang/3.7.0/include/<br>
<br>
Which should be the right path for the builtin includes, since I
use the install prefix <br>
<br>
/home/peter/Programming/unix-built/clang/<br>
<br>
(The contents certainly looks right)<br>
<br>
Any further suggestions?<div><div class="h5"><br>
<br>
On 26/03/15 01:53, Sean Silva wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">Although the errors don't look like it, could it be
something like: <a href="http://clang.llvm.org/docs/FAQ.html#i-get-errors-about-some-headers-being-missing-stddef-h-stdarg-h" target="_blank">http://clang.llvm.org/docs/FAQ.html#i-get-errors-about-some-headers-being-missing-stddef-h-stdarg-h</a> ?
<div><br>
</div>
<div><br>
</div>
<div>-- Sean Silva</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Mar 25, 2015 at 6:37 PM, Peter
Stirling <span dir="ltr"><<a href="mailto:peter@pjstirling.plus.com" target="_blank">peter@pjstirling.plus.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>It doesn't, unfortunately (I had subsequently figured
out where it was creeping in from).
<div>
<div><br>
<br>
On 26/03/15 01:27, Sean Silva wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Does the error go away with
'-fcolor-diagnostics' instead of <span style="font-size:13px">'-fcolor-diagnosticsoo'?</span> If
it does, then maybe <span style="font-size:13px">'-fcolor-diagnosticsoo'
is generating an error that is not being handled
correctly in the tool.</span>
<div><span style="font-size:13px"><br>
</span></div>
<div><span style="font-size:13px">-- Sean Silva</span></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Mar 25, 2015 at
10:32 AM, Peter Stirling <span dir="ltr"><<a href="mailto:peter@pjstirling.plus.com" target="_blank">peter@pjstirling.plus.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I'm seeing some odd behaviour that I hope
someone can suggest a solution for:<br>
<br>
Recently, when I run my tool on my test file I
get errors that I don't get if I run clang++
with equivalent options -<br>
<br>
<br>
In file included from
/home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/dummy.cc:6:<br>
In file included from
/usr/include/taglib/taglib.h:47:<br>
In file included from
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/string:40:<br>
In file included from
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/bits/char_traits.h:39:<br>
In file included from
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/bits/stl_algobase.h:63:<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:58:35:
error: invalid operands to binary expression
('float' and 'unsigned long')<br>
static const _Value __min =
__glibcxx_min(_Value);<br>
^~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:48:35:
note: expanded from macro '__glibcxx_min'<br>
(__glibcxx_signed(_Tp) ? (_Tp)1 <<
__glibcxx_digits(_Tp) : (_Tp)0)<br>
~~~~~~ ^
~~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:55:12:
note: in instantiation of template class
'__gnu_cxx::__numeric_traits_integer<float>'
requested here<br>
struct __numeric_traits_integer<br>
^<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:59:35:
error: invalid operands to binary expression
('float' and 'unsigned long')<br>
static const _Value __max =
__glibcxx_max(_Value);<br>
^~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:52:15:
note: expanded from macro '__glibcxx_max'<br>
(((((_Tp)1 << (__glibcxx_digits(_Tp)
- 1)) - 1) << 1) + 1) : ~(_Tp)0)<br>
~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:58:35:
error: invalid operands to binary expression
('double' and 'unsigned long')<br>
static const _Value __min =
__glibcxx_min(_Value);<br>
^~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:48:35:
note: expanded from macro '__glibcxx_min'<br>
(__glibcxx_signed(_Tp) ? (_Tp)1 <<
__glibcxx_digits(_Tp) : (_Tp)0)<br>
~~~~~~ ^
~~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:55:12:
note: in instantiation of template class
'__gnu_cxx::__numeric_traits_integer<double>'
requested here<br>
struct __numeric_traits_integer<br>
^<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:59:35:
error: invalid operands to binary expression
('double' and 'unsigned long')<br>
static const _Value __max =
__glibcxx_max(_Value);<br>
^~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:52:15:
note: expanded from macro '__glibcxx_max'<br>
(((((_Tp)1 << (__glibcxx_digits(_Tp)
- 1)) - 1) << 1) + 1) : ~(_Tp)0)<br>
~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:58:35:
error: invalid operands to binary expression
('long double' and 'unsigned long')<br>
static const _Value __min =
__glibcxx_min(_Value);<br>
^~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:48:35:
note: expanded from macro '__glibcxx_min'<br>
(__glibcxx_signed(_Tp) ? (_Tp)1 <<
__glibcxx_digits(_Tp) : (_Tp)0)<br>
~~~~~~ ^
~~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:55:12:
note: in instantiation of template class
'__gnu_cxx::__numeric_traits_integer<long
double>' requested here<br>
struct __numeric_traits_integer<br>
^<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:59:35:
error: invalid operands to binary expression
('long double' and 'unsigned long')<br>
static const _Value __max =
__glibcxx_max(_Value);<br>
^~~~~~~~~~~~~~~~~~~~~<br>
/../lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/ext/numeric_traits.h:52:15:
note: expanded from macro '__glibcxx_max'<br>
(((((_Tp)1 << (__glibcxx_digits(_Tp)
- 1)) - 1) << 1) + 1) : ~(_Tp)0)<br>
~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
I extracted the command line produced by the
FixedCompilationDatabase and printed it with
quotes for extra paranoia:<br>
<br>
'clang-tool' '-Wall' '-std=c++11'
'-fcolor-diagnosticsoo'
'/home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/dummy.cc'<br>
<br>
First thing to observe is that
-fcolor-diagnosticsoo seems a bit weird.
Second is that running clang++ -Wall
-std=c++11
/home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/dummy.cc
doesn't error.<br>
<br>
This is on a fedora box, if that makes a
difference.<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div></div></div></div>