| AUTOSARC++14 |
Obligation Level | C/C++ Warning Classes |
| AUTOSARC++14:A0-1-1 A project shall not contain instances of non-volatile variables being given values that are not subsequently used. |
Required | |
| AUTOSARC++14:M0-1-1 A project shall not contain unreachable code. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A0-1-2 The value returned by a function having a non-void return type that is not an overloaded operator shall be used. |
Required | |
| AUTOSARC++14:M0-1-2 A project shall not contain infeasible paths. |
Required | |
| AUTOSARC++14:M0-1-3 A project shall not contain unused variables. |
Required | |
| AUTOSARC++14:A0-1-4 There shall be no unused named parameters in non-virtual functions. |
Required | |
| AUTOSARC++14:M0-1-4 A project shall not contain non-volatile POD variables having only one use. |
Required | |
| AUTOSARC++14:A0-1-5 There shall be no unused named parameters in the set of parameters for a virtual function and all the functions that override it. |
Required | |
| AUTOSARC++14:A0-1-6 There should be no unused type declarations. |
Advisory | |
| AUTOSARC++14:M0-1-8 All functions with void return type shall have external side effect(s). |
Required | |
| AUTOSARC++14:M0-1-9 There shall be no dead code. |
Required | |
| AUTOSARC++14:M0-1-10 Every defined function should be called at least once. |
Advisory | |
| AUTOSARC++14:M0-2-1 An object shall not be assigned to an overlapping object. |
Required | |
| AUTOSARC++14:M0-3-1 Minimization of run-time failures shall be ensured by the use of at least one of: (a) static analysis tools/techniques; (b) dynamic analysis tools/techniques; (c) explicit coding of checks to handle run-time faults. |
Required | |
| AUTOSARC++14:M0-3-2 If a function generates error information, then that error information shall be tested. |
Required | |
| AUTOSARC++14:A0-4-4 Range, domain and pole errors shall be checked when using math functions. |
Required | |
| AUTOSARC++14:A1-1-1 All code shall conform to ISO/IEC 14882:2014 - Programming Language C++ and shall not use deprecated features. |
Required | |
| AUTOSARC++14:A1-1-2 A warning level of the compilation process shall be set in compliance with project policies. |
Required | |
| AUTOSARC++14:A1-4-1 Code metrics and their valid boundaries shall be defined and code shall comply with defined boundaries of code metrics. |
Required | |
| AUTOSARC++14:A2-5-1 Trigraphs shall not be used. |
Required | |
| AUTOSARC++14:A2-7-1 The character \ shall not occur as a last character of a C++ comment. |
Required | |
| AUTOSARC++14:M2-7-1 The character sequence /* shall not be used within a C-style comment. |
Required | |
| AUTOSARC++14:A2-7-2 Sections of code shall not be "commented out". |
Required | |
| AUTOSARC++14:A2-10-1 An identifier declared in an inner scope shall not hide an identifier declared in an outer scope. |
Required | |
| AUTOSARC++14:M2-10-1 Different identifiers shall be typographically unambiguous. |
Required | |
| AUTOSARC++14:A2-10-4 The identifier name of a non-member object with static storage duration or static function shall not be reused within a namespace. |
Required | |
| AUTOSARC++14:A2-10-5 An identifier name of a function with static storage duration or a non-member object with external or internal linkage should not be reused. |
Advisory | |
| AUTOSARC++14:A2-10-6 A class or enumeration name shall not be hidden by a variable, function or enumerator declaration in the same scope. |
Required | |
| AUTOSARC++14:A2-11-1 Volatile keyword shall not be used. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M2-13-2 Octal constants (other than zero) and octal escape sequences (other than "\0" ) shall not be used. |
Required | |
| AUTOSARC++14:M2-13-3 A "U" suffix shall be applied to all octal or hexadecimal integer literals of unsigned type. |
Required | |
| AUTOSARC++14:A2-13-4 String literals shall not be assigned to non-constant pointers. |
Required | |
| AUTOSARC++14:M2-13-4 Literal suffixes shall be upper case. |
Required | |
| AUTOSARC++14:A3-1-1 It shall be possible to include any header file in multiple translation units without violating the One Definition Rule. |
Required | |
| AUTOSARC++14:M3-1-2 Functions shall not be declared at block scope. |
Required | |
| AUTOSARC++14:A3-1-4 When an array with external linkage is declared, its size shall be stated explicitly. |
Required | |
| AUTOSARC++14:M3-2-1 All declarations of an object or function shall have compatible types. |
Required | |
| AUTOSARC++14:M3-2-2 The One Definition Rule shall not be violated. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M3-2-3 A type, object or function that is used in multiple translation units shall be declared in one and only one file. |
Required | |
| AUTOSARC++14:M3-2-4 An identifier with external linkage shall have exactly one definition. |
Required | |
| AUTOSARC++14:A3-3-2 Static and thread-local objects shall be constant-initialized. |
Required | |
| AUTOSARC++14:M3-3-2 If a function has internal linkage then all re-declarations shall include the static storage class specifier. |
Required | |
| AUTOSARC++14:M3-4-1 An identifier declared to be an object or type shall be defined in a block that minimizes its visibility. |
Required | |
| AUTOSARC++14:A3-8-1 An object shall not be accessed outside of its lifetime. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A3-9-1 Fixed width integer types from <cstdint>, indicating the size and signedness, shall be used in place of the basic numerical types. |
Required | |
| AUTOSARC++14:M3-9-1 The types used for an object, a function return type, or a function parameter shall be token-for-token identical in all declarations and re-declarations. |
Required | |
| AUTOSARC++14:M3-9-3 The underlying bit representations of floating-point values shall not be used. |
Required | |
| AUTOSARC++14:A4-5-1 Expressions with type enum or enum class shall not be used as operands to built-in and overloaded operators other than the subscript operator [ ], the assignment operator =, the equality operators == and ! =, the unary & operator, and the relational operators <, <=, >, >=. |
Required | |
| AUTOSARC++14:M4-5-1 Expressions with type bool shall not be used as operands to built-in operators other than the assignment operator =, the logical operators &&, ||, !, the equality operators == and ! =, the unary & operator, and the conditional operator. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M4-5-3 Expressions with type (plain) char and wchar_t shall not be used as operands to built-in operators other than the assignment operator =, the equality operators == and ! =, and the unary & operator. |
Required | |
| AUTOSARC++14:A4-7-1 An integer expression shall not lead to data loss. |
Required | |
| AUTOSARC++14:A4-10-1 Only nullptr literal shall be used as the null-pointer-constant. |
Required | |
| AUTOSARC++14:M4-10-1 NULL shall not be used as an integer value. |
Required | |
| AUTOSARC++14:M4-10-2 Literal zero (0) shall not be used as the null-pointer-constant. |
Required | |
| AUTOSARC++14:A5-0-1 The value of an expression shall be the same under any order of evaluation that the standard permits. |
Required | |
| AUTOSARC++14:A5-0-2 The condition of an if-statement and the condition of an iteration statement shall have type bool. |
Required | |
| AUTOSARC++14:M5-0-2 Limited dependence should be placed on C++ operator precedence rules in expressions. |
Advisory | |
| AUTOSARC++14:A5-0-3 The declaration of objects shall contain no more than two levels of pointer indirection. |
Required | |
| AUTOSARC++14:M5-0-3 A cvalue expression shall not be implicitly converted to a different underlying type. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A5-0-4 Pointer arithmetic shall not be used with pointers to non-final classes. |
Required | |
| AUTOSARC++14:M5-0-4 An implicit integral conversion shall not change the signedness of the underlying type. |
Required | |
| AUTOSARC++14:M5-0-5 There shall be no implicit floating-integral conversions. |
Required | |
| AUTOSARC++14:M5-0-6 An implicit integral or floating-point conversion shall not reduce the size of the underlying type. |
Required | |
| AUTOSARC++14:M5-0-7 There shall be no explicit floating-integral conversions of a cvalue expression. |
Required | |
| AUTOSARC++14:M5-0-8 An explicit integral or floating-point conversion shall not increase the size of the underlying type of a cvalue expression. |
Required | |
| AUTOSARC++14:M5-0-9 An explicit integral conversion shall not change the signedness of the underlying type of a cvalue expression. |
Required | |
| AUTOSARC++14:M5-0-10 If the bitwise operators ~ and << are applied to an operand with an underlying type of unsigned char or unsigned short, the result shall be immediately cast to the underlying type of the operand. |
Required | |
| AUTOSARC++14:M5-0-11 The plain char type shall only be used for the storage and use of character values. |
Required | |
| AUTOSARC++14:M5-0-12 Signed char and unsigned char type shall only be used for the storage and use of numeric values. |
Required | |
| AUTOSARC++14:M5-0-14 The first operand of a conditional-operator shall have type bool. |
Required | |
| AUTOSARC++14:M5-0-15 Array indexing shall be the only form of pointer arithmetic. |
Required | |
| AUTOSARC++14:M5-0-16 A pointer operand and any pointer resulting from pointer arithmetic using that operand shall both address elements of the same array. |
Required | |
| AUTOSARC++14:M5-0-17 Subtraction between pointers shall only be applied to pointers that address elements of the same array. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M5-0-18 >, >=, <, <= shall not be applied to objects of pointer type, except where they point to the same array. |
Required | |
| AUTOSARC++14:M5-0-20 Non-constant operands to a binary bitwise operator shall have the same underlying type. |
Required | |
| AUTOSARC++14:M5-0-21 Bitwise operators shall only be applied to operands of unsigned underlying type. |
Required | |
| AUTOSARC++14:A5-1-2 Variables shall not be implicitly captured in a lambda expression. |
Required | |
| AUTOSARC++14:A5-1-3 Parameter list (possibly empty) shall be included in every lambda expression. |
Required | |
| AUTOSARC++14:A5-1-4 A lambda expression object shall not outlive any of its reference-captured objects. |
Required | |
| AUTOSARC++14:A5-1-6 Return type of a non-void return type lambda expression should be explicitly specified. |
Advisory | |
| AUTOSARC++14:A5-2-2 Traditional C-style casts shall not be used. |
Required | |
| AUTOSARC++14:M5-2-2 A pointer to a virtual base class shall only be cast to a pointer to a derived class by means of dynamic_cast. |
Required | |
| AUTOSARC++14:A5-2-3 A cast shall not remove any const or volatile qualification from the type of a pointer or reference. |
Required | |
| AUTOSARC++14:A5-2-4 reinterpret_cast shall not be used. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A5-2-5 An array or container shall not be accessed beyond its range. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A5-2-6 The operands of a logical && or || shall be parenthesized if the operands contain binary operators. |
Required | |
| AUTOSARC++14:M5-2-6 A cast shall not convert a pointer to a function to any other pointer type, including a pointer to function type. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M5-2-8 An object with integer type or pointer to void type shall not be converted to an object with pointer type. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M5-2-9 A cast shall not convert a pointer type to an integral type. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M5-2-10 The increment (++) and decrement (--) operators shall not be mixed with other operators in an expression. |
Required |
| closely mapped |
|
| also related |
|
|
| AUTOSARC++14:M5-2-11 The comma operator, && operator and the || operator shall not be overloaded. |
Required | |
| AUTOSARC++14:M5-2-12 An identifier with array type passed as a function argument shall not decay to a pointer. |
Required | |
| AUTOSARC++14:M5-3-1 Each operand of the ! operator, the logical && or the logical || operators shall have type bool. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A5-3-2 Null pointers shall not be dereferenced. |
Required | |
| AUTOSARC++14:M5-3-2 The unary minus operator shall not be applied to an expression whose underlying type is unsigned. |
Required | |
| AUTOSARC++14:M5-3-3 The unary & operator shall not be overloaded. |
Required | |
| AUTOSARC++14:M5-3-4 Evaluation of the operand to the sizeof operator shall not contain side effects. |
Required | |
| AUTOSARC++14:A5-6-1 The right hand operand of the integer division or remainder operators shall not be equal to zero. |
Required | |
| AUTOSARC++14:M5-8-1 The right hand operand of a shift operator shall lie between zero and one less than the width in bits of the underlying type of the left hand operand. |
Required | |
| AUTOSARC++14:A5-10-1 A pointer to member virtual function shall only be tested for equality with null-pointer-constant. |
Required | |
| AUTOSARC++14:M5-14-1 The right hand operand of a logical &&, || operators shall not contain side effects. |
Required |
| closely mapped |
|
| also related |
|
|
| AUTOSARC++14:M5-18-1 The comma operator shall not be used. |
Required | |
| AUTOSARC++14:M5-19-1 Evaluation of constant unsigned integer expressions shall not lead to wrap-around. |
Required | |
| AUTOSARC++14:M6-2-1 Assignment operators shall not be used in sub-expressions. |
Required | |
| AUTOSARC++14:M6-2-2 Floating-point expressions shall not be directly or indirectly tested for equality or inequality. |
Required | |
| AUTOSARC++14:M6-2-3 Before preprocessing, a null statement shall only occur on a line by itself; it may be followed by a comment, provided that the first character following the null statement is a white-space character. |
Required | |
| AUTOSARC++14:M6-3-1 The statement forming the body of a switch, while, do ... while or for statement shall be a compound statement. |
Required | |
| AUTOSARC++14:A6-4-1 A switch statement shall have at least two case-clauses, distinct from the default label. |
Required | |
| AUTOSARC++14:M6-4-1 An if ( condition ) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement, or another if statement. |
Required | |
| AUTOSARC++14:M6-4-2 All if ... else if constructs shall be terminated with an else clause. |
Required | |
| AUTOSARC++14:M6-4-3 A switch statement shall be a well-formed switch statement. |
Required | |
| AUTOSARC++14:M6-4-4 A switch-label shall only be used when the most closely-enclosing compound statement is the body of a switch statement. |
Required | |
| AUTOSARC++14:M6-4-5 An unconditional throw or break statement shall terminate every non-empty switch-clause. |
Required | |
| AUTOSARC++14:M6-4-6 The final clause of a switch statement shall be the default-clause. |
Required | |
| AUTOSARC++14:M6-4-7 The condition of a switch statement shall not have bool type. |
Required | |
| AUTOSARC++14:A6-5-2 A for loop shall contain a single loop-counter which shall not have floating-point type. |
Required | |
| AUTOSARC++14:M6-5-3 The loop-counter shall not be modified within condition or statement. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A6-5-4 For-init-statement and expression should not perform actions other than loop-counter initialization and modification. |
Advisory | |
| AUTOSARC++14:M6-5-4 The loop-counter shall be modified by one of: --, ++, - = n, or + = n; where n remains constant for the duration of the loop. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M6-5-5 A loop-control-variable other than the loop-counter shall not be modified within condition or expression. |
Required | |
| AUTOSARC++14:A6-6-1 The goto statement shall not be used. |
Required | |
| AUTOSARC++14:M6-6-1 Any label referenced by a goto statement shall be declared in the same block, or in a block enclosing the goto statement. |
Required | |
| AUTOSARC++14:M6-6-2 The goto statement shall jump to a label declared later in the same function body. |
Required | |
| AUTOSARC++14:M6-6-3 The continue statement shall only be used within a well-formed for loop. |
Required | |
| AUTOSARC++14:A7-1-1 Constexpr or const specifiers shall be used for immutable data declaration. |
Required | |
| AUTOSARC++14:M7-1-2 A pointer or reference parameter in a function shall be declared as pointer to const or reference to const if the corresponding object is not modified. |
Required | |
| AUTOSARC++14:A7-1-4 The register keyword shall not be used. |
Required | |
| AUTOSARC++14:A7-1-7 Each expression statement and identifier declaration shall be placed on a separate line. |
Required | |
| AUTOSARC++14:A7-2-1 An expression with enum underlying type shall only have values corresponding to the enumerators of the enumeration. |
Required | |
| AUTOSARC++14:A7-2-4 In an enumeration, either (1) none, (2) the first or (3) all enumerators shall be initialized. |
Required | |
| AUTOSARC++14:A7-2-5 Enumerations should be used to represent sets of related named constants. |
Advisory | |
| AUTOSARC++14:A7-3-1 All overloads of a function shall be visible from where it is called. |
Required | |
| AUTOSARC++14:M7-3-1 The global namespace shall only contain main, namespace declarations and extern "C" declarations. |
Required | |
| AUTOSARC++14:M7-3-3 There shall be no unnamed namespaces in header files. |
Required | |
| AUTOSARC++14:M7-3-4 Using-directives shall not be used. |
Required | |
| AUTOSARC++14:M7-3-6 Using-directives and using-declarations (excluding class scope or function scope using-declarations) shall not be used in header files. |
Required | |
| AUTOSARC++14:A7-4-1 The asm declaration shall not be used. |
Required | |
| AUTOSARC++14:M7-4-1 All usage of assembler shall be documented. |
Required | |
| AUTOSARC++14:M7-4-2 Assembler instructions shall only be introduced using the asm declaration. |
Required | |
| AUTOSARC++14:M7-4-3 Assembly language shall be encapsulated and isolated. |
Required | |
| AUTOSARC++14:M7-5-1 A function shall not return a reference or a pointer to an automatic variable (including parameters), defined within the function. |
Required | |
| AUTOSARC++14:A7-5-2 Functions shall not call themselves, either directly or indirectly. |
Required | |
| AUTOSARC++14:M7-5-2 The address of an object with automatic storage shall not be assigned to another object that may persist after the first object has ceased to exist. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A7-6-1 Functions declared with the [[noreturn]] attribute shall not return. |
Required | |
| AUTOSARC++14:M8-0-1 An init-declarator-list or a member-declarator-list shall consist of a single init-declarator or member-declarator respectively. |
Required | |
| AUTOSARC++14:M8-3-1 Parameters in an overriding virtual function shall either use the same default arguments as the function they override, or else shall not specify any default arguments. |
Required | |
| AUTOSARC++14:A8-4-1 Functions shall not be defined using the ellipsis notation. |
Required | |
| AUTOSARC++14:A8-4-2 All exit paths from a function with non-void return type shall have an explicit return statement with an expression. |
Required |
| closely mapped |
|
| also related |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M8-4-2 The identifiers used for the parameters in a re-declaration of a function shall be identical to those in the declaration. |
Required | |
| AUTOSARC++14:M8-4-4 A function identifier shall either be used to call the function or it shall be preceded by &. |
Required | |
| AUTOSARC++14:A8-5-0 All memory shall be initialized before it is read. |
Required |
| closely mapped |
|
| also related |
|
|
| AUTOSARC++14:A8-5-1 In an initialization list, the order of initialization shall be following: (1) virtual base classes in depth and left to right order of the inheritance graph, (2) direct base classes in left to right order of inheritance list, (3) non-static data members in the order they were declared in the class definition. |
Required | |
| AUTOSARC++14:M8-5-2 Braces shall be used to indicate and match the structure in the non-zero initialization of arrays and structures. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:M9-3-3 If a member function can be made static then it shall be made static, otherwise if it can be made const then it shall be made const. |
Required | |
| AUTOSARC++14:A9-5-1 Unions shall not be used. |
Required | |
| AUTOSARC++14:M9-6-1 When the absolute positioning of bits representing a bit-field is required, then the behavior and packing of bit-fields shall be documented. |
Required | |
| AUTOSARC++14:A9-6-2 Bit-fields shall be used only when interfacing to hardware or conforming to communication protocols. |
Required | |
| AUTOSARC++14:M9-6-4 Named bit-fields with signed integer type shall have a length of more than one bit. |
Required | |
| AUTOSARC++14:A10-1-1 Class shall not be derived from more than one base class which is not an interface class. |
Required | |
| AUTOSARC++14:M10-1-1 Classes should not be derived from virtual bases. |
Advisory | |
| AUTOSARC++14:M10-1-2 A base class shall only be declared virtual if it is used in a diamond hierarchy. |
Required | |
| AUTOSARC++14:M10-1-3 An accessible base class shall not be both virtual and non-virtual in the same hierarchy. |
Required | |
| AUTOSARC++14:A10-2-1 Non-virtual public or protected member functions shall not be redefined in derived classes. |
Required | |
| AUTOSARC++14:A12-0-1 If a class declares a copy or move operation, or a destructor, either via "=default", "=delete", or via a user-provided declaration, then all others of these five special member functions shall be declared as well. |
Required | |
| AUTOSARC++14:A12-0-2 Bitwise operations and operations that assume data representation in memory shall not be performed on objects. |
Required |
| also related |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A12-1-1 Constructors shall explicitly initialize all virtual base classes, all direct non-virtual base classes and all non-static data members. |
Required | |
| AUTOSARC++14:M12-1-1 An object's dynamic type shall not be used from the body of its constructor or destructor. |
Required | |
| AUTOSARC++14:A12-4-1 Destructor of a base class shall be public virtual, public override or protected non-virtual. |
Required | |
| AUTOSARC++14:A12-8-1 Move and copy constructors shall move and respectively copy base classes and data members of a class, without any side effects. |
Required | |
| AUTOSARC++14:A12-8-3 Moved-from object shall not be read-accessed. |
Required | |
| AUTOSARC++14:A12-8-5 A copy assignment and a move assignment operators shall handle self-assignment. |
Required | |
| AUTOSARC++14:A12-8-6 Copy and move constructors and copy assignment and move assignment operators shall be declared protected or defined "=delete" in base class. |
Required |
| closely mapped |
|
| also related |
|
|
| AUTOSARC++14:A13-2-1 An assignment operator shall return a reference to "this". |
Required | |
| AUTOSARC++14:A13-2-3 A relational operator shall return a boolean value. |
Required | |
| AUTOSARC++14:A14-7-2 Template specialization shall be declared in the same file (1) as the primary template (2) as a user-defined type, for which the specialization is declared. |
Required | |
| AUTOSARC++14:M15-1-2 NULL shall not be thrown explicitly. |
Required | |
| AUTOSARC++14:M15-1-3 An empty throw (throw;) shall only be used in the compound statement of a catch handler. |
Required | |
| AUTOSARC++14:A15-2-1 Constructors that are not noexcept shall not be invoked before program startup. |
Required | |
| AUTOSARC++14:A15-3-5 A class type exception shall be caught by reference or const reference. |
Required |
| closely mapped |
|
| also related |
|
|
| AUTOSARC++14:M15-3-6 Where multiple handlers are provided in a single try-catch statement or function-try-block for a derived class and some or all of its bases, the handlers shall be ordered most-derived to base class. |
Required | |
| AUTOSARC++14:M15-3-7 Where multiple handlers are provided in a single try-catch statement or function-try-block, any ellipsis (catch-all) handler shall occur last. |
Required | |
| AUTOSARC++14:A15-4-2 If a function is declared to be noexcept, noexcept(true) or noexcept(<true condition>), then it shall not exit with an exception. |
Required | |
| AUTOSARC++14:A15-5-1 All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception. A noexcept exception specification shall be added to these functions as appropriate. |
Required | |
| AUTOSARC++14:A15-5-2 Program shall not be abruptly terminated. In particular, an implicit or explicit invocation of std::abort(), std::quick_exit(), std::_Exit(), std::terminate() shall not be done. |
Required | |
| AUTOSARC++14:A16-0-1 The pre-processor shall only be used for unconditional and conditional file inclusion and include guards, and using the following directives: (1) #ifndef, (2) #ifdef, (3) #if, (4) #if defined, (5) #elif, (6) #else, (7) #define, (8) #endif, (9) #include. |
Required | |
| AUTOSARC++14:M16-0-1 #include directives in a file shall only be preceded by other pre-processor directives or comments. |
Required | |
| AUTOSARC++14:M16-0-2 Macros shall only be #define'd or #undef'd in the global namespace. |
Required | |
| AUTOSARC++14:M16-0-5 Arguments to a function-like macro shall not contain tokens that look like pre-processing directives. |
Required | |
| AUTOSARC++14:M16-0-6 In the definition of a function-like macro, each instance of a parameter shall be enclosed in parentheses, unless it is used as the operand of # or ##. |
Required | |
| AUTOSARC++14:M16-0-7 Undefined macro identifiers shall not be used in #if or #elif pre-processor directives, except as operands to the defined operator. |
Required | |
| AUTOSARC++14:M16-0-8 If the # token appears as the first token on a line, then it shall be immediately followed by a pre-processing token. |
Required | |
| AUTOSARC++14:M16-1-1 The defined pre-processor operator shall only be used in one of the two standard forms. |
Required | |
| AUTOSARC++14:M16-1-2 All #else, #elif and #endif pre-processor directives shall reside in the same file as the #if or #ifdef directive to which they are related. |
Required | |
| AUTOSARC++14:A16-2-1 The ', ", /*, //, \ characters shall not occur in a header file name or in #include directive. |
Required | |
| AUTOSARC++14:M16-3-1 There shall be at most one occurrence of the # or ## operators in a single macro definition. |
Required | |
| AUTOSARC++14:M16-3-2 The # and ## operators should not be used. |
Advisory |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A16-6-1 #error directive shall not be used. |
Required | |
| AUTOSARC++14:A16-7-1 The #pragma directive shall not be used. |
Required | |
| AUTOSARC++14:A17-0-1 Reserved identifiers, macros and functions in the C++ standard library shall not be defined, redefined or undefined. |
Required | |
| AUTOSARC++14:M17-0-2 The names of standard library macros and objects shall not be reused. |
Required | |
| AUTOSARC++14:M17-0-3 The names of standard library functions shall not be overridden. |
Required | |
| AUTOSARC++14:M17-0-5 The setjmp macro and the longjmp function shall not be used. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A17-6-1 Non-standard entities shall not be added to standard namespaces. |
Required | |
| AUTOSARC++14:A18-0-1 The C library facilities shall only be accessed through C++ library headers. |
Required |
| closely mapped |
|
| hierarchy ancestor |
|
|
| AUTOSARC++14:A18-0-2 The error state of a conversion from string to a numeric value shall be checked. |
Required | |
| AUTOSARC++14:A18-0-3 The library <clocale> (locale.h) and the setlocale function shall not be used. |
Required | |
| AUTOSARC++14:M18-0-3 The library functions abort, exit, getenv and system from library <cstdlib> shall not be used. |
Required | |
| AUTOSARC++14:M18-0-4 The time handling functions of library <ctime> shall not be used. |
Required | |
| AUTOSARC++14:M18-0-5 The unbounded functions of library <cstring> shall not be used. |
Required | |
| AUTOSARC++14:A18-1-1 C-style arrays shall not be used. |
Required | |
| AUTOSARC++14:A18-1-4 A pointer pointing to an element of an array of objects shall not be passed to a smart pointer of single object type. |
Required | |
| AUTOSARC++14:M18-2-1 The macro offsetof shall not be used. |
Required | |
| AUTOSARC++14:A18-5-1 Functions malloc, calloc, realloc and free shall not be used. |
Required | |
| AUTOSARC++14:A18-5-3 The form of the delete expression shall match the form of the new expression used to allocate the memory. |
Required | |
| AUTOSARC++14:A18-5-5 Memory management functions shall ensure the following: (a) deterministic behavior resulting with the existence of worst-case execution time, (b) avoiding memory fragmentation, (c) avoid running out of memory, (d) avoiding mismatched allocations or deallocations, (e) no dependence on non-deterministic calls to kernel. |
Required | |
| AUTOSARC++14:A18-5-7 If non-realtime implementation of dynamic memory management functions is used in the project, then memory shall only be allocated and deallocated during non-realtime program phases. |
Required | |
| AUTOSARC++14:M18-7-1 The signal handling facilities of <csignal> shall not be used. |
Required | |
| AUTOSARC++14:M19-3-1 The error indicator errno shall not be used. |
Required | |
| AUTOSARC++14:A21-8-1 Arguments to character-handling functions shall be representable as an unsigned char. |
Required | |
| AUTOSARC++14:A23-0-2 Elements of a container shall only be accessed via valid references, iterators, and pointers. |
Required |
| closely mapped |
|
| also related |
|
|
| AUTOSARC++14:A26-5-1 Pseudorandom numbers shall not be generated using std::rand(). |
Required | |
| AUTOSARC++14:A27-0-1 Inputs from independent components shall be validated. |
Required | |
| AUTOSARC++14:M27-0-1 The stream input/output library <cstdio> shall not be used. |
Required | |
| AUTOSARC++14:A27-0-2 A C-style string shall guarantee sufficient space for data and the null terminator. |
Advisory | |
| AUTOSARC++14:A27-0-3 Alternate input and output operations on a file stream shall not be used without an intervening flush or positioning call. |
Required | |