I'm having a problem with getting splint to check some code like the following:
1. if (p) { 2. if (p->a) { 3. p->a->b=1; 4. if (p->a->c) { 5. bar(p->a); 6. p->a=NULL; 7. } else { 8. foo(p->a); 9. } 10. } 11. } Forgetting other warnings to do with kept storage etc, splint comes up with an error like: Possibly null storage p->a passed as non-null param: foo (p->a) If I comment out line 6, the warning goes away. It also goes away if I comment out lines 4,5,6,7, & 9. One workaround is to add an assert(NULL!=p->a) between 7 & 8, but is there a proper solution? Thanks, -C p.s. This is the Win32 version, Win2k sp2, splint 3.0.1.6