Static src analysis of LibreOffice
lbalbalba at gmail.com
Tue Aug 7 03:00:56 PDT 2012
On Tue, Aug 7, 2012 at 11:52 AM, Stephan Bergmann <sbergman at 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).
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.
More information about the LibreOffice