GitHub
CERT Secure Coding

PRQA QA-C++

This page was automatically generated and should not be edited.

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

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

Tool Version: 4.4

CheckerGuideline
0014DCL52-CPP. Never qualify a reference type with const or volatile
1510MSC52-CPP. Value-returning functions must return a value from all exit paths
1772CON53-CPP. Avoid deadlock by locking in a predefined order
1773CON53-CPP. Avoid deadlock by locking in a predefined order
1774CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
1775CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
2012DCL50-CPP. Do not define a C-style variadic function
2110MEM51-CPP. Properly deallocate dynamically allocated resources
2111MEM51-CPP. Properly deallocate dynamically allocated resources
2112MEM51-CPP. Properly deallocate dynamically allocated resources
2113MEM51-CPP. Properly deallocate dynamically allocated resources
2118MEM51-CPP. Properly deallocate dynamically allocated resources
2160DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope
2502DCL53-CPP. Do not write syntactically ambiguous declarations
2510DCL53-CPP. Do not write syntactically ambiguous declarations
2518DCL59-CPP. Do not define an unnamed namespace in a header file
2625DCL50-CPP. Do not define a C-style variadic function
2668CTR54-CPP. Do not subtract iterators that do not refer to the same container
2726EXP53-CPP. Do not read uninitialized memory
2727EXP53-CPP. Do not read uninitialized memory
2728EXP53-CPP. Do not read uninitialized memory
2761CTR54-CPP. Do not subtract iterators that do not refer to the same container
2762CTR54-CPP. Do not subtract iterators that do not refer to the same container
2763CTR54-CPP. Do not subtract iterators that do not refer to the same container
2766CTR54-CPP. Do not subtract iterators that do not refer to the same container
2767CTR54-CPP. Do not subtract iterators that do not refer to the same container
2768CTR54-CPP. Do not subtract iterators that do not refer to the same container
2810OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
2811OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
2812EXP54-CPP. Do not access an object outside of its lifetime
2812OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
2813EXP54-CPP. Do not access an object outside of its lifetime
2813OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
2814EXP54-CPP. Do not access an object outside of its lifetime
2814OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
2888MSC54-CPP. A signal handler must be a plain old function
2891CTR50-CPP. Guarantee that container indices and iterators are within the valid range
2930EXP54-CPP. Do not access an object outside of its lifetime
2931EXP54-CPP. Do not access an object outside of its lifetime
2932EXP54-CPP. Do not access an object outside of its lifetime
2933EXP54-CPP. Do not access an object outside of its lifetime
2934EXP54-CPP. Do not access an object outside of its lifetime
2961EXP53-CPP. Do not read uninitialized memory
2962EXP53-CPP. Do not read uninitialized memory
2963EXP53-CPP. Do not read uninitialized memory
2966EXP53-CPP. Do not read uninitialized memory
2967EXP53-CPP. Do not read uninitialized memory
2968EXP53-CPP. Do not read uninitialized memory
2971EXP53-CPP. Do not read uninitialized memory
2972EXP53-CPP. Do not read uninitialized memory
2973EXP53-CPP. Do not read uninitialized memory
2976EXP53-CPP. Do not read uninitialized memory
2977EXP53-CPP. Do not read uninitialized memory
2978EXP53-CPP. Do not read uninitialized memory
3013INT50-CPP. Do not cast to an out-of-range enumeration value
3033. 3038EXP56-CPP. Do not call a function with a mismatched language linkage
3066EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
3072OOP51-CPP. Do not slice derived objects
3073CTR56-CPP. Do not use pointer arithmetic on polymorphic objects
3139CTR50-CPP. Guarantee that container indices and iterators are within the valid range
3140CTR50-CPP. Guarantee that container indices and iterators are within the valid range
3220EXP50-CPP. Do not depend on the order of evaluation for side effects
3221EXP50-CPP. Do not depend on the order of evaluation for side effects
3222EXP50-CPP. Do not depend on the order of evaluation for side effects
3223EXP50-CPP. Do not depend on the order of evaluation for side effects
3225CTR58-CPP. Predicate function objects should not be mutable
3225MEM52-CPP. Detect and handle memory allocation errors
3226CTR58-CPP. Predicate function objects should not be mutable
3226MEM52-CPP. Detect and handle memory allocation errors
3227CTR58-CPP. Predicate function objects should not be mutable
3227MEM52-CPP. Detect and handle memory allocation errors
3228EXP50-CPP. Do not depend on the order of evaluation for side effects
3228CTR58-CPP. Predicate function objects should not be mutable
3228MEM52-CPP. Detect and handle memory allocation errors
3229CTR58-CPP. Predicate function objects should not be mutable
3229MEM52-CPP. Detect and handle memory allocation errors
3230CTR58-CPP. Predicate function objects should not be mutable
3231CTR58-CPP. Predicate function objects should not be mutable
3232CTR58-CPP. Predicate function objects should not be mutable
3233CTR58-CPP. Predicate function objects should not be mutable
3234CTR58-CPP. Predicate function objects should not be mutable
3240EXP52-CPP. Do not rely on side effects in unevaluated operands
3241EXP52-CPP. Do not rely on side effects in unevaluated operands
3337MEM51-CPP. Properly deallocate dynamically allocated resources
3339MEM51-CPP. Properly deallocate dynamically allocated resources
3402OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
3403OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
3404OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
3508ERR60-CPP. Exception objects must be nothrow copy constructible
3510ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler
3802CTR53-CPP. Use valid iterator ranges
4003EXP54-CPP. Do not access an object outside of its lifetime
4026EXP54-CPP. Do not access an object outside of its lifetime
4030ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
4031ERR61-CPP. Catch exceptions by lvalue reference
4032DCL58-CPP. Do not modify the standard namespaces
4035DCL58-CPP. Do not modify the standard namespaces
4035ERR51-CPP. Handle all exceptions
4035ERR55-CPP. Honor exception specifications
4036ERR51-CPP. Handle all exceptions
4036ERR55-CPP. Honor exception specifications
4037ERR51-CPP. Handle all exceptions
4053OOP53-CPP. Write constructor member initializers in the canonical order
4072OOP54-CPP. Gracefully handle self-copy assignment
4073OOP54-CPP. Gracefully handle self-copy assignment
4075ERR56-CPP. Guarantee exception safety
4075OOP54-CPP. Gracefully handle self-copy assignment
4075OOP58-CPP. Copy operations must not mutate the source object
4076ERR56-CPP. Guarantee exception safety
4076OOP54-CPP. Gracefully handle self-copy assignment
4260OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4261OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4262MEM51-CPP. Properly deallocate dynamically allocated resources
4263MEM51-CPP. Properly deallocate dynamically allocated resources
4264MEM51-CPP. Properly deallocate dynamically allocated resources
4273OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4274OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4275OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4276OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4277OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4278OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4279OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4280OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4281OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4282OOP50-CPP. Do not invoke virtual functions from constructors or destructors
4303MEM50-CPP. Do not access freed memory
4304MEM50-CPP. Do not access freed memory
4631DCL58-CPP. Do not modify the standard namespaces
4632MEM52-CPP. Detect and handle memory allocation errors
4632ERR55-CPP. Honor exception specifications
4634ERR58-CPP. Handle all exceptions thrown before main() begins executing
4636ERR58-CPP. Handle all exceptions thrown before main() begins executing
4637ERR58-CPP. Handle all exceptions thrown before main() begins executing
4639ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
4639ERR58-CPP. Handle all exceptions thrown before main() begins executing
4671EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
4961CON50-CPP. Do not destroy a mutex while it is locked
4962CON50-CPP. Do not destroy a mutex while it is locked
5003DCL51-CPP. Do not declare or define a reserved identifier
5014ERR50-CPP. Do not abruptly terminate the program
5015ERR52-CPP. Do not use setjmp() or longjmp()
5017OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
5018CON51-CPP. Ensure actively held locks are released on exceptional conditions
5019CON54-CPP. Wrap functions that can spuriously wake up in a loop
5020CON55-CPP. Preserve thread safety and liveness when using condition variables
5028MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
5038OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions