Contents

1.  Introduction

2.  Outline of the program

3.  What lint checks

    3.1 Set, used and unused variables

    3.2 Flow of control

    3.3 Functions

    3.4 Undefined evaluation order

    3.5 Pointer alignment problems

    3.6 Libraries

4.  How lint checks

    4.1 The first pass data structure

    4.2 The first pass checking mechanism

    4.3 The second pass data structure

    4.4 The second pass checking mechanism

5.  How to make lint shut up

6.  User options

7.  Ideas for further development

8.  Testing the program

9.  References

Appendix A - The warnings
Appendix B - The Ten Commandments for C programmers