Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Generated Content
Info
title
Note

This page is was automatically generated from the "Automated Detection" sections in the individual guidelines. Do not modify this page directly.

Version number:
1.1

C++ checkers

Rule

araydecl

ARR02-CPP. Explicitly specify array bounds, even if implicitly defined by an initializer

araydecl

STR36-CPP. Do not specify the bound of a character array initialized with a string literal

bitftype

INT12-CPP. Do not make assumptions about the type of a plain int bit-field when used in an expression

castexpr

EXP05-CPP. Do not use C-style casts

castexpr

EXP14-CPP. Do not use reinterpret_cast on pointers to class objects with multiple inheritence

castexpr

EXP35-CPP. Do not cast away a const qualification

castexpr

EXP36-CPP. Do not convert pointers into more strictly aligned pointer types

charcast

STR34-CPP. Cast characters to unsigned types before converting to larger integer sizes

charplan

INT07-CPP. Use only explicitly signed or unsigned char type for numeric values

cplxcall

FLP31-CPP. Do not call functions expecting real values with complex values

declgrup_srceline

DCL04-CPP. Do not declare more than one variable per declaration

declhidn

DCL01-CPP. Do not reuse variable names in subscopes

dtrigraf

PRE07-CPP. Avoid using repeated question marks

enuminit

INT09-CPP. Ensure enumeration constants map to unique values

exprprns

EXP00-CPP. Use parentheses for precedence of operation

exprprns

EXP17-CPP. Treat relational and equality operators as if they were nonassociative

idntsiml

DCL02-CPP. Use visually distinct identifiers

ignrtrn

EXP12-CPP. Do not ignore values returned by functions or methods

inclgard

PRE06-CPP. Enclose header files in an inclusion guard

ltrlsynt

DCL16-CPP. Use 'L', not 'l', to indicate a long value

macrbody

PRE01-CPP. Use parentheses within macros around parameter names

macrbody

PRE02-CPP. Macro replacement lists should be parenthesized

macrcall

DCL03-CPP. Use a static assertion to test the value of a constant expression

minscope

DCL07-CPP. Minimize the scope of variables and methods

nomagicc

DCL06-CPP. Use meaningful symbolic constants to represent literal values in program logic

stlibuse

ERR01-CPP. Use ferror() rather than errno to check for FILE stream errors

stlibuse

FIO07-CPP. Prefer fseek() to rewind()

stlibuse

FIO12-CPP. Prefer setvbuf() to setbuf()

stlibuse

MSC30-CPP. Do not use the rand() function for generating pseudorandom numbers

swchsynt

MSC18-CPP. Finish every set of statements associated with a case label with a break statement

trycatch

ERR36-CPP. Multiple catch handlers to a try block should order their exceptions from most derived to most basic

<ac:macro ac:name="info"><ac:parameter ac:name="title">Generated Content</ac:parameter><ac:rich-text-body><p>This page is automatically generated from the "Automated Detection" sections in the individual guidelines. Do not modify this page directly.</p></ac:rich-text-body></ac:macro>
<p>Version number:<br />
1.1</p>

<table><tbody>
<tr>
<th><p> C++ checkers </p></th>
<th><p> Rule </p></th>
</tr>
<tr>
<td><p> araydecl </p></td>
<td><p> <ac:link><ri:page ri:content-title="ARR02-CPP. Explicitly specify array bounds, even if implicitly defined by an initializer" /></ac:link> </p></td>
</tr>
<tr>
<td><p> araydecl </p></td>
<td><p> <ac:link><ri:page ri:content-title="STR36-CPP. Do not specify the bound of a character array initialized with a string literal" /></ac:link> </p></td>
</tr>
<tr>
<td><p> bitftype </p></td>
<td><p> <ac:link><ri:page ri:content-title="INT12-CPP. Do not make assumptions about the type of a plain int bit-field when used in an expression" /></ac:link> </p></td>
</tr>
<tr>
<td><p> castexpr </p></td>
<td><p> <ac:link><ri:page ri:content-title="EXP05-CPP. Do not use C-style casts" /></ac:link> </p></td>
</tr>
<tr>
<td><p> castexpr </p></td>
<td><p> <ac:link><ri:page ri:content-title="EXP14-CPP. Do not use reinterpret_cast on pointers to class objects with multiple inheritence" /></ac:link> </p></td>
</tr>
<tr>
<td><p> castexpr </p></td>
<td><p> <ac:link><ri:page ri:content-title="EXP35-CPP. Do not cast away a const qualification" /></ac:link> </p></td>
</tr>
<tr>
<td><p> castexpr </p></td>
<td><p> <ac:link><ri:page ri:content-title="EXP36-CPP. Do not convert pointers into more strictly aligned pointer types" /></ac:link> </p></td>
</tr>
<tr>
<td><p> charcast </p></td>
<td><p> <ac:link><ri:page ri:content-title="STR34-CPP. Cast characters to unsigned types before converting to larger integer sizes" /></ac:link> </p></td>
</tr>
<tr>
<td><p> charplan </p></td>
<td><p> <ac:link><ri:page ri:content-title="INT07-CPP. Use only explicitly signed or unsigned char type for numeric values" /></ac:link> </p></td>
</tr>
<tr>
<td><p> cplxcall </p></td>
<td><p> <ac:link><ri:page ri:content-title="FLP31-CPP. Do not call functions expecting real values with complex values" /></ac:link> </p></td>
</tr>
<tr>
<td><p> declgrup_srceline </p></td>
<td><p> <ac:link><ri:page ri:content-title="DCL04-CPP. Do not declare more than one variable per declaration" /></ac:link> </p></td>
</tr>
<tr>
<td><p> declhidn </p></td>
<td><p> <ac:link><ri:page ri:content-title="DCL01-CPP. Do not reuse variable names in subscopes" /></ac:link> </p></td>
</tr>
<tr>
<td><p> dtrigraf </p></td>
<td><p> <ac:link><ri:page ri:content-title="PRE07-CPP. Avoid using repeated question marks" /></ac:link> </p></td>
</tr>
<tr>
<td><p> enuminit </p></td>
<td><p> <ac:link><ri:page ri:content-title="INT09-CPP. Ensure enumeration constants map to unique values" /></ac:link> </p></td>
</tr>
<tr>
<td><p> exprprns </p></td>
<td><p> <ac:link><ri:page ri:content-title="EXP00-CPP. Use parentheses for precedence of operation" /></ac:link> </p></td>
</tr>
<tr>
<td><p> exprprns </p></td>
<td><p> <ac:link><ri:page ri:content-title="EXP17-CPP. Treat relational and equality operators as if they were nonassociative" /></ac:link> </p></td>
</tr>
<tr>
<td><p> idntsiml </p></td>
<td><p> <ac:link><ri:page ri:content-title="DCL02-CPP. Use visually distinct identifiers" /></ac:link> </p></td>
</tr>
<tr>
<td><p> ignrtrn </p></td>
<td><p> <ac:link><ri:page ri:content-title="EXP12-CPP. Do not ignore values returned by functions or methods" /></ac:link> </p></td>
</tr>
<tr>
<td><p> inclgard </p></td>
<td><p> <ac:link><ri:page ri:content-title="PRE06-CPP. Enclose header files in an inclusion guard" /></ac:link> </p></td>
</tr>
<tr>
<td><p> ltrlsynt </p></td>
<td><p> <ac:link><ri:page ri:content-title="DCL16-CPP. Use 'L', not 'l', to indicate a long value" /></ac:link> </p></td>
</tr>
<tr>
<td><p> macrbody </p></td>
<td><p> <ac:link><ri:page ri:content-title="PRE01-CPP. Use parentheses within macros around parameter names" /></ac:link> </p></td>
</tr>
<tr>
<td><p> macrbody </p></td>
<td><p> <ac:link><ri:page ri:content-title="PRE02-CPP. Macro replacement lists should be parenthesized" /></ac:link> </p></td>
</tr>
<tr>
<td><p> macrcall </p></td>
<td><p> <ac:link><ri:page ri:content-title="DCL03-CPP. Use a static assertion to test the value of a constant expression" /></ac:link> </p></td>
</tr>
<tr>
<td><p> minscope </p></td>
<td><p> <ac:link><ri:page ri:content-title="DCL07-CPP. Minimize the scope of variables and methods" /></ac:link> </p></td>
</tr>
<tr>
<td><p> nomagicc </p></td>
<td><p> <ac:link><ri:page ri:content-title="DCL06-CPP. Use meaningful symbolic constants to represent literal values in program logic" /></ac:link> </p></td>
</tr>
<tr>
<td><p> stlibuse </p></td>
<td><p> <ac:link><ri:page ri:content-title="ERR01-CPP. Use ferror() rather than errno to check for FILE stream errors" /></ac:link> </p></td>
</tr>
<tr>
<td><p> stlibuse </p></td>
<td><p> <ac:link><ri:page ri:content-title="FIO07-CPP. Prefer fseek() to rewind()" /></ac:link> </p></td>
</tr>
<tr>
<td><p> stlibuse </p></td>
<td><p> <ac:link><ri:page ri:content-title="FIO12-CPP. Prefer setvbuf() to setbuf()" /></ac:link> </p></td>
</tr>
<tr>
<td><p> stlibuse </p></td>
<td><p> <ac:link><ri:page ri:content-title="MSC30-CPP. Do not use the rand() function for generating pseudorandom numbers" /></ac:link> </p></td>
</tr>
<tr>
<td><p> swchsynt </p></td>
<td><p> <ac:link><ri:page ri:content-title="MSC18-CPP. Finish every set of statements associated with a case label with a break statement" /></ac:link> </p></td>
</tr>
<tr>
<td><p> trycatch </p></td>
<td><p> <ac:link><ri:page ri:content-title="ERR36-CPP. Multiple catch handlers to a try block should order their exceptions from most derived to most basic" /></ac:link> </p></td>
</tr>
</tbody></table>

...

and should not be edited.

Note

The information on this page was provided by outside contributors and has not been verified by SEI CERT.

Tip

The table below can be re-ordered, by clicking column headers.

...

Include Page
ECLAIR_V
ECLAIR_V