LWN.net Logo

smatch 1.53 released

From:  Dan Carpenter <error27@gmail.com>
To:  linux-kernel@vger.kernel.org
Subject:  smatch 1.53 released
Date:  Tue, 2 Jun 2009 11:41:06 +0300 (EAT)
Message-ID:  <alpine.DEB.2.00.0906021141010.19390@bicker>
Archive-link:  Article, Thread

Smatch is a source code checker for C.  Right now the focus is on checking 
for kernel bugs.

Here is are the instructions for installing and using:
    git clone git://repo.or.cz/smatch.git
    cd smatch
    make
    cd /usr/src/linux
    make C=1 CHECK=/path/to/smatch modules bzImage | tee warns.txt 
    egrep '(warn|error):' warns.txt

Some weeks ago I pushed a bad commit.  I haven't had internet access to 
fix it until now.  Sorry about that.  It's fixed now.

Smatch v1.53 improves handling of compound implications.  So if you have 
code like this:
        aaa = 0;
        if (y)
                aaa = 1;
        if (x)
                aaa = 2;
        if (x && y)
                __smatch_print_value("aaa");  // <-- prints aaa == 2
        else
                __smatch_print_value("aaa");  // <-- prints aaa == 0-2

This version also adds implications for switch statements.
        if (!a && x != 42)
                return;
        switch(x) {
        case 1:
                a->member = 1;  // <--  It's ok to dereference 'a' here.
        case 42:
                a->member = 1;  // <-- smatch prints an error here.

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds