Skip to main content
assistive.skiplink.to.breadcrumbs
assistive.skiplink.to.header.menu
assistive.skiplink.to.action.menu
assistive.skiplink.to.quick.search
Log in
Confluence
Spaces
Hit enter to search
Help
Online Help
Keyboard Shortcuts
Feed Builder
What’s new
Available Gadgets
About Confluence
Log in
SEI CERT C Coding Standard
Pages
Boards
Space shortcuts
Dashboard
Secure Coding Home
Android
C
C++
Java
Perl
Page tree
Browse pages
Configure
Space tools
View Page
A
t
tachments (0)
Page History
Page Information
View in Hierarchy
View Source
Export to PDF
Export to Word
Pages
…
SEI CERT C Coding Standard
4 Back Matter
EE. Analyzers
ECLAIR
Page Information
Title:
ECLAIR
Author:
Astha Singhal
Apr 10, 2012
Last Changed by:
David Svoboda
Oct 14, 2024
Tiny Link:
(useful for email)
https://wiki.sei.cmu.edu/confluence/x/hdUxBQ
Export As:
Word
·
PDF
Incoming Links
SEI CERT C Coding Standard (62)
Page:
PRE00-C. Prefer inline or static functions to function-like macros
Page:
PRE03-C. Prefer typedefs to defines for encoding non-pointer types
Page:
EXP12-C. Do not ignore values returned by functions
Page:
MSC05-C. Do not manipulate time_t typed values directly
Page:
EXP44-C. Do not rely on side effects in operands to sizeof, _Alignof, or _Generic
Page:
MSC04-C. Use comments consistently and in a readable fashion
Page:
PRE02-C. Macro replacement lists should be parenthesized
Page:
PRE08-C. Guarantee that header file names are unique
Page:
DCL13-C. Declare function parameters that are pointers to values not changed by the function as const
Page:
EXP37-C. Call functions with the correct number and type of arguments
Page:
DCL16-C. Use "L," not "l," to indicate a long value
Page:
EXP36-C. Do not cast pointers into more strictly aligned pointer types
Page:
FLP00-C. Understand the limitations of floating-point numbers
Page:
DCL37-C. Do not declare or define a reserved identifier
Page:
EXP45-C. Do not perform assignments in selection statements
Page:
STR37-C. Arguments to character-handling functions must be representable as an unsigned char
Page:
EXP13-C. Treat relational and equality operators as if they were nonassociative
Page:
DCL06-C. Use meaningful symbolic constants to represent literal values
Page:
DCL03-C. Use a static assertion to test the value of a constant expression
Page:
MSC24-C. Do not use deprecated or obsolescent functions
Page:
DCL07-C. Include the appropriate type information in function declarators
Page:
INT13-C. Use bitwise operators only on unsigned operands
Page:
INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand
Page:
MSC17-C. Finish every set of statements associated with a case label with a break statement
Page:
INT02-C. Understand integer conversion rules
Page:
EXP14-C. Beware of integer promotion when performing bitwise operations on integer types smaller than int
Page:
DCL01-C. Do not reuse variable names in subscopes
Page:
ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer
Page:
DCL04-C. Do not declare more than one variable per declaration
Page:
DCL15-C. Declare file-scope objects or functions that do not need external linkage as static
Page:
PRE01-C. Use parentheses within macros around parameter names
Page:
STR04-C. Use plain char for characters in the basic character set
Page:
STR05-C. Use pointers to const when referring to string literals
Page:
STR11-C. Do not specify the bound of a character array initialized with a string literal
Page:
PRE07-C. Avoid using repeated question marks
Page:
PRE32-C. Do not use preprocessor directives in invocations of function-like macros
Page:
DCL36-C. Do not declare an identifier with conflicting linkage classifications
Page:
PRE12-C. Do not define unsafe macros
Page:
MSC30-C. Do not use the rand() function for generating pseudorandom numbers
Page:
MEM02-C. Immediately cast the result of a memory allocation function call into a pointer to the allocated type
Page:
STR10-C. Do not concatenate different type of string literals
Page:
INT12-C. Do not make assumptions about the type of a plain int bit-field when used in an expression
Page:
STR34-C. Cast characters to unsigned char before converting to larger integer sizes
Page:
ERR01-C. Use ferror() rather than errno to check for FILE stream errors
Page:
FLP30-C. Do not use floating-point variables as loop counters
Page:
PRE31-C. Avoid side effects in arguments to unsafe macros
Page:
EXP30-C. Do not depend on the order of evaluation for side effects
Page:
MSC20-C. Do not use a switch statement to transfer control into a complex block
Page:
PRE06-C. Enclose header files in an include guard
Page:
EXP00-C. Use parentheses for precedence of operation
Page:
DCL02-C. Use visually distinct identifiers
Page:
DCL31-C. Declare identifiers before using them
Page:
EXP09-C. Use sizeof to determine the size of a type or variable
Page:
INT09-C. Ensure enumeration constants map to unique values
Page:
EXP05-C. Do not cast away a const qualification
Page:
INT07-C. Use only explicitly signed or unsigned char type for numeric values
Page:
MSC12-C. Detect and remove code that has no effect or is never executed
Page:
DCL19-C. Minimize the scope of variables and functions
Page:
FIO34-C. Distinguish between characters read from a file and EOF or WEOF
Page:
DCL00-C. Const-qualify immutable objects
Page:
DCL11-C. Understand the type issues associated with variadic functions
Page:
PRE04-C. Do not reuse a standard header file name
SEI CERT C++ Coding Standard (2)
Page:
MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
Page:
EXP50-CPP. Do not depend on the order of evaluation for side effects
Hierarchy
Parent Page
Page:
EE. Analyzers
Labels
Global Labels (1)
analyzer
Recent Changes
Time
Editor
Oct 14, 2024 07:27
David Svoboda
View Changes
Feb 08, 2024 09:06
David Svoboda
View Changes
Sep 27, 2023 08:25
David Svoboda
View Changes
Jul 13, 2023 13:28
David Svoboda
View Changes
Jun 06, 2023 12:24
David Svoboda
View Page History
Outgoing Links
External Links (62)
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?p…
SEI CERT C Coding Standard (1)
Page:
ECLAIR_V
Overview
Content Tools
{"serverDuration": 226, "requestCorrelationId": "8f18e810cc1611b2"}