Re: Fun with Squid2 and Clang

From: Henrik Nordstrom <henrik_at_henriknordstrom.net>
Date: Wed, 02 Sep 2009 12:31:09 +0200

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
>
Received on Wed Sep 02 2009 - 10:31:21 MDT

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