Title: ECLAIR  
Author: Astha Singhal Apr 10, 2012
Last Changed by: David Svoboda Feb 08, 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 (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
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
Hierarchy
Parent Page
    Page: EE. Analyzers
Labels
Global Labels (1)
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