Re: Fun with Squid2 and Clang

From: Mark Nottingham <mnot_at_yahoo-inc.com>
Date: Thu, 3 Sep 2009 08:16:58 +1000

That's weird - I could have sworn it said that it was c / objective-
c / c++.

Ah, well.

On 02/09/2009, at 8:31 PM, Henrik Nordstrom wrote:

> Maybe that it's C++ while the others are C?
>
> Hmm.. from Clang homepage
>
> "The Clang Static Analyzer consists of both a source code
> analysis framework and a standalone tool that finds bugs in C
> and Objective-C programs.".
>
> C++ is not C or Objective-C, so it's not too strange it doesn't work
> for
> C++ programs.
>
> And some seconds further digging gives
>
> http://clang.llvm.org/cxx_status.html
>
> Regards
> Henrik
>
>
>
> ons 2009-09-02 klockan 19:17 +1000 skrev Mark Nottingham:
>> Hm.
>>
>> I'm trying 3.HEAD now, but it's giving me some trouble; analysis
>> starts up fine, but when it gets to doing cf_gen_defines, it switches
>> over to using g++ and doesn't switch back; see below.
>>
>> cf_gen didn't cause any problems for squid2; is there something new
>> and weird in the build process here?
>>
>>
>> Users/mnot/Downloads/checker-0.218/libexec/ccc-analyzer -
>> DSQUID_SNMP=1 -I.. -I../include -I../include -Werror -Wall -
>> Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-
>> declarations -Wcomments -D_REENTRANT -Wall -g -O2 -MT snmp_pdu.o -
>> MD -
>> MP -MF .deps/snmp_pdu.Tpo -c -o snmp_pdu.o snmp_pdu.c
>> ANALYZE: snmp_pdu.c snmp_pdu_create
>> ANALYZE: snmp_pdu.c snmp_pdu_clone
>> ANALYZE: snmp_pdu.c snmp_pdu_fix
>> ANALYZE: snmp_pdu.c snmp_fix_pdu
>> ANALYZE: snmp_pdu.c snmp_pdu_free
>> ANALYZE: snmp_pdu.c snmp_free_pdu
>> ANALYZE: snmp_pdu.c snmp_pdu_encode
>> ANALYZE: snmp_pdu.c snmp_pdu_decode
>> ANALYZE: snmp_pdu.c snmp_add_null_var
>> mv -f .deps/snmp_pdu.Tpo .deps/snmp_pdu.Po
>> /Users/mnot/Downloads/checker-0.218/libexec/ccc-analyzer -
>> DSQUID_SNMP=1 -I.. -I../include -I../include -Werror -Wall -
>> Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-
>> declarations -Wcomments -D_REENTRANT -Wall -g -O2 -MT
>> snmplib_debug.o -
>> MD -MP -MF .deps/snmplib_debug.Tpo -c -o snmplib_debug.o
>> snmplib_debug.c
>> ANALYZE: snmplib_debug.c snmplib_debug
>> mv -f .deps/snmplib_debug.Tpo .deps/snmplib_debug.Po
>> rm -f libsnmp.a
>> /usr/bin/ar cru libsnmp.a asn1.o parse.o snmp_vars.o coexistance.o
>> snmp_api.o snmp_error.o mib.o snmp_api_error.o snmp_msg.o snmp_pdu.o
>> snmplib_debug.o
>> ranlib libsnmp.a
>> Making all in scripts
>> make[1]: Nothing to be done for `all'.
>> Making all in src
>> gawk -f ./cf_gen_defines <./cf.data.pre >cf_gen_defines.h
>> sed "\
>> s%_at_DEFAULT_HTTP_PORT@%3128%g;\
>> s%_at_DEFAULT_ICP_PORT@%3130%g;\
>> s%_at_DEFAULT_CACHE_EFFECTIVE_USER@%nobody%g;\
>> s%_at_DEFAULT_MIME_TABLE@%/opt/squid3-test/etc/mime.conf%g;\
>> s%_at_DEFAULT_DNSSERVER@%/opt/squid3-test/libexec/`echo dnsserver | sed
>> 's,x,x,;s/$//'`%g;\
>> s%_at_DEFAULT_UNLINKD@%/opt/squid3-test/libexec/`echo unlinkd | sed
>> 's,x,x,;s/$//'`%g;\
>> s%_at_DEFAULT_PINGER@%/opt/squid3-test/libexec/`echo pinger | sed
>> 's,x,x,;s/$//'`%g;\
>> s%_at_DEFAULT_DISKD@%/opt/squid3-test/libexec/`echo diskd | sed
>> 's,x,x,;s/$//'`%g;\
>> s%_at_DEFAULT_CACHE_LOG@%/opt/squid3-test/var/logs/cache.log%g;\
>> s%_at_DEFAULT_ACCESS_LOG@%/opt/squid3-test/var/logs/access.log%g;\
>> s%_at_DEFAULT_STORE_LOG@%/opt/squid3-test/var/logs/store.log%g;\
>> s%_at_DEFAULT_PID_FILE@%/opt/squid3-test/var/squid.pid%g;\
>> s%_at_DEFAULT_NETDB_FILE@%/opt/squid3-test/var/logs/netdb.state%g;\
>> s%_at_DEFAULT_SWAP_DIR@%/opt/squid3-test/var/cache%g;\
>> s%_at_DEFAULT_ICON_DIR@%/opt/squid3-test/share/icons%g;\
>> s%_at_DEFAULT_MIB_PATH@%/opt/squid3-test/share/mib.txt%g;\
>> s%_at_DEFAULT_ERROR_DIR@%/opt/squid3-test/share/errors%g;\
>> s%_at_DEFAULT_CONFIG_DIR@%/opt/squid3-test/etc%g;\
>> s%_at_DEFAULT_PREFIX@%/opt/squid3-test%g;\
>> s%_at_DEFAULT_HOSTS@%/etc/hosts%g;\
>> s%@[V]ERSION@%3.HEAD-20090902%g;"\
>> < ./cf.data.pre >cf.data
>> depbase=`echo cf_gen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
>> g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/opt/squid3-test/etc/
>> squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/opt/squid3-test/share\" -
>> DDEFAULT_SQUID_CONFIG_DIR=\"/opt/squid3-test/etc\" -I.. -I../
>> include -
>> I../src -I../include -I../lib -I../src -I/usr/include/libxml2 -
>> Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -
>> g -O2 -MT cf_gen.o -MD -MP -MF $depbase.Tpo -c -o cf_gen.o
>> cf_gen.cc &&\
>> mv -f $depbase.Tpo $depbase.Po
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/usr/include/
>> libxml2 -
>> Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -
>> g -O2 -g -o cf_gen cf_gen.o -L../lib -lmiscutil ../compat/
>> libcompat.la -lexpat -lxml2 -lm -lresolv
>> mkdir .libs
>> g++ -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-
>> strings -Wcomments -D_REENTRANT -g -O2 -g -o cf_gen cf_gen.o -Wl,-
>> bind_at_load -L/Users/mnot/Downloads/squid-3.HEAD-20090902/lib -
>> lmiscutil ../compat/.libs/libcompat.a -lexpat -lxml2 -lm -lresolv
>> ./cf_gen cf.data ./cf.data.depend
>> gawk -f ./mk-string-arrays.awk < ./err_type.h > err_type.cc
>> gawk -f ./mk-globals-c.awk < ./globals.h > globals.cc
>> gawk -f ./mk-string-arrays.awk < ./hier_code.h > hier_code.cc
>> gawk -f ./mk-string-arrays.awk < ./icp_opcode.h > icp_opcode.cc
>> gawk -f ./mk-string-arrays.awk < ./lookup_t.h > lookup_t.cc
>> /bin/sh ./repl_modules.sh lru > repl_modules.cc
>> gawk -f ./mk-string-arrays.awk < ./swap_log_op.h > swap_log_op.cc
>> make all-recursive
>> Making all in base
>> /bin/sh ../../libtool --tag=CXX --mode=compile g++ -
>> DHAVE_CONFIG_H -
>> I../.. -I../../include -I../../src -I../../include -I/usr/include/
>> libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -g -O2 -MT AsyncCall.lo -MD -MP -MF .deps/AsyncCall.Tpo
>> -c
>> -o AsyncCall.lo AsyncCall.cc
>> g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../src -I../../
>> include -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-
>> strings -Wcomments -D_REENTRANT -g -O2 -MT AsyncCall.lo -MD -MP -
>> MF .deps/AsyncCall.Tpo -c AsyncCall.cc -o AsyncCall.o
>> mv -f .deps/AsyncCall.Tpo .deps/AsyncCall.Plo
>> /bin/sh ../../libtool --tag=CXX --mode=compile g++ -
>> DHAVE_CONFIG_H -
>> I../.. -I../../include -I../../src -I../../include -I/usr/include/
>> libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -g -O2 -MT AsyncJob.lo -MD -MP -MF .deps/AsyncJob.Tpo -
>> c -
>> o AsyncJob.lo AsyncJob.cc
>> g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../src -I../../
>> include -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-
>> strings -Wcomments -D_REENTRANT -g -O2 -MT AsyncJob.lo -MD -MP -
>> MF .deps/AsyncJob.Tpo -c AsyncJob.cc -o AsyncJob.o
>> mv -f .deps/AsyncJob.Tpo .deps/AsyncJob.Plo
>> /bin/sh ../../libtool --tag=CXX --mode=compile g++ -
>> DHAVE_CONFIG_H -
>> I../.. -I../../include -I../../src -I../../include -I/usr/include/
>> libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -g -O2 -MT AsyncCallQueue.lo -MD -MP -MF .deps/
>> AsyncCallQueue.Tpo -c -o AsyncCallQueue.lo AsyncCallQueue.cc
>> g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../src -I../../
>> include -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-
>> strings -Wcomments -D_REENTRANT -g -O2 -MT AsyncCallQueue.lo -MD -
>> MP -
>> MF .deps/AsyncCallQueue.Tpo -c AsyncCallQueue.cc -o AsyncCallQueue.o
>> mv -f .deps/AsyncCallQueue.Tpo .deps/AsyncCallQueue.Plo
>> /bin/sh ../../libtool --tag=CXX --mode=link g++ -I/usr/include/
>> libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -g -O2 -g -o libbase.la AsyncCall.lo AsyncJob.lo
>> AsyncCallQueue.lo -lm -lresolv
>> mkdir .libs
>> ar cru .libs/libbase.a AsyncCall.o AsyncJob.o AsyncCallQueue.o
>> ranlib .libs/libbase.a
>> creating libbase.la
>> (cd .libs && rm -f libbase.la && ln -s ../libbase.la libbase.la)
>> Making all in acl
>> /bin/sh ../../libtool --tag=CXX --mode=compile g++ -
>> DHAVE_CONFIG_H -
>> I../.. -I../../include -I../../src -I../../include -I/usr/include/
>> libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -g -O2 -MT Acl.lo -MD -MP -MF .deps/Acl.Tpo -c -o Acl.lo
>> Acl.cc
>> g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../src -I../../
>> include -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-
>> strings -Wcomments -D_REENTRANT -g -O2 -MT Acl.lo -MD -MP -MF .deps/
>> Acl.Tpo -c Acl.cc -o Acl.o
>> mv -f .deps/Acl.Tpo .deps/Acl.Plo
>> /bin/sh ../../libtool --tag=CXX --mode=compile g++ -
>> DHAVE_CONFIG_H -
>> I../.. -I../../include -I../../src -I../../include -I/usr/include/
>> libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -g -O2 -MT Checklist.lo -MD -MP -MF .deps/Checklist.Tpo
>> -c
>> -o Checklist.lo Checklist.cc
>> g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../src -I../../
>> include -I/usr/include/libxml2 -Werror -Wall -Wpointer-arith -Wwrite-
>> strings -Wcomments -D_REENTRANT -g -O2 -MT Checklist.lo -MD -MP -
>> MF .deps/Checklist.Tpo -c Checklist.cc -o Checklist.o
>> mv -f .deps/Checklist.Tpo .deps/Checklist.Plo
>> /bin/sh ../../libtool --tag=CXX --mode=link g++ -I/usr/include/
>> libxml2 -Werror -Wall -Wpointer-arith -Wwrite-strings -Wcomments -
>> D_REENTRANT -g -O2 -g -o libapi.la Acl.lo Checklist.lo -lm -
>> lresolv
>> mkdir .libs
>> ar cru .libs/libapi.a Acl.o Checklist.o
>> ranlib .libs/libapi.a
>> creating libapi.la
>>
>>
>>
>>
>> On 02/09/2009, at 1:38 PM, Kinkie wrote:
>>
>>> On Wed, Sep 2, 2009 at 4:23 AM, Mark Nottingham<mnot_at_yahoo-inc.com>
>>> wrote:
>>>> Seeing the fun new tools in Snow Leopard's XCode, I dug a bit and
>>>> ran
>>>> Clang's static analyser <http://clang-analyzer.llvm.org/> on
>>>> squid2-
>>>> HEAD;
>>>> see
>>>>
>>>> http://www.mnot.net/test/squid-scan/
>>>>
>>>> for results.
>>>>
>>>> If this is interesting/useful, I can do a quick run on squid3 as
>>>> well; it's
>>>> pretty easy.
>>>
>>> Please, do it if it's not too much work. 3.0, 3.1 and HEAD would be
>>> interesting.
>>>
>>> --
>>> /kinkie
>>
>> --
>> Mark Nottingham mnot_at_yahoo-inc.com
>>
>

--
Mark Nottingham       mnot_at_yahoo-inc.com
Received on Wed Sep 02 2009 - 22:17:22 MDT

This archive was generated by hypermail 2.2.0 : Thu Sep 03 2009 - 12:00:04 MDT