when code is executed there is some bad behavior (undefined behavior, leak)
when code is executed there might be undefined behavior
point out possible mistakes, and suggest more defensive programming. Examples:
Suggestions for making the code faster. These suggestions are only based on common knowledge. It is not certain you'll get any measurable difference in speed by fixing these messages.
portability warnings. Implementation defined behavior. 64-bit portability. Some undefined behavior that probably works "as you want". etc.
Configuration problems. If you get such output then your code is ok but your cppcheck configuration could be improved.