On Tue, Aug 7, 2012 at 11:52 AM, Stephan Bergmann <sbergman@redhat.com> wrote:
On 08/07/2012 10:40 AM, John Smith wrote:
It's not clang/clang++ that is executed here: it's the
ccc-analyzer/c++-analyzer. It sits in front of the compiler you use,
which is still GCC in this case. After ccc-analyzer/c++-analyzer is
done with the analysis, it passes all parameters and arguments to the
actual compiler (GCC), which then proceeds to compile the code as
usual. Im guessing your fix is trying to detect which compiler is
used, and thats still (as it is intended) GCC, but doesnt notice the
analyzer sitting in front of it (again, as intended) . Since none of
the llvm/clang parts support the __float128 type, the error is still
produced by ccc-analyzer/c++-analyzer.
If you can try 'scan-build ./configure && scan-build make' on the
LibreOffice code, you should be able to reproduce it.
So you should probably change that to just "scan-build make" (as LO's
default make target automatically calls ./autogen.sh, which in turn calls
./configure, as necessary), which would hopefully lead to LO's ./configure
seeing a CXX that is the actual scan-build "fake compiler," which would in
turn hopefully lead to the detection that -std=gnu++11 does not work kicking
in (as at least the static analyzer part of the fake compiler would fail on
#include <vector>, even if the gcc part succeeded).
Stephan
_______________________________________________
No, configure *does not* detect it. Thats the way it's supposed to
work, by design, by the way. It's what 'scan-build ./configure' and
'scan-build make' do: insert a 'fake compiler'.
But it looks like I can do "scan-build --use-cc=clang
--use-c++=clang++ ", im trying that but I still get GCC for
compilation... Will investigate later, gotta go now.
Thanks,
John Smith.
Context
- Re: Static src analysis of LibreOffice (continued)
Re: Static src analysis of LibreOffice · Terrence Enger
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.