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
3 Back Matter
CC. Analyzers
Astrée
Page Information
Title:
Astrée
Author:
Joerg Herter
Aug 28, 2020
Last Changed by:
David Svoboda
Sep 27, 2023
Tiny Link:
(useful for email)
https://wiki.sei.cmu.edu/confluence/x/-ABKDQ
Export As:
Word
·
PDF
Incoming Links
SEI CERT C++ Coding Standard (45)
Page:
OOP50-CPP. Do not invoke virtual functions from constructors or destructors
Page:
EXP54-CPP. Do not access an object outside of its lifetime
Page:
MSC53-CPP. Do not return from a function declared [[noreturn]]
Page:
ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
Page:
ERR52-CPP. Do not use setjmp() or longjmp()
Page:
ERR58-CPP. Handle all exceptions thrown before main() begins executing
Page:
ERR61-CPP. Catch exceptions by lvalue reference
Page:
MEM57-CPP. Avoid using default operator new for over-aligned types
Page:
MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
Page:
CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
Page:
OOP53-CPP. Write constructor member initializers in the canonical order
Page:
STR51-CPP. Do not attempt to create a std::string from a null pointer
Page:
EXP52-CPP. Do not rely on side effects in unevaluated operands
Page:
DCL59-CPP. Do not define an unnamed namespace in a header file
Page:
DCL60-CPP. Obey the one-definition rule
Page:
OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
Page:
EXP53-CPP. Do not read uninitialized memory
Page:
DCL50-CPP. Do not define a C-style variadic function
Page:
DCL51-CPP. Do not declare or define a reserved identifier
Page:
DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
Page:
MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
Page:
CTR54-CPP. Do not subtract iterators that do not refer to the same container
Page:
MSC52-CPP. Value-returning functions must return a value from all exit paths
Page:
ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler
Page:
INT50-CPP. Do not cast to an out-of-range enumeration value
Page:
OOP54-CPP. Gracefully handle self-copy assignment
Page:
EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
Page:
MEM50-CPP. Do not access freed memory
Page:
MSC51-CPP. Ensure your random number generator is properly seeded
Page:
CTR53-CPP. Use valid iterator ranges
Page:
CTR52-CPP. Guarantee that library functions do not overflow
Page:
DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope
Page:
STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
Page:
STR53-CPP. Range check element access
Page:
CTR50-CPP. Guarantee that container indices and iterators are within the valid range
Page:
ERR51-CPP. Handle all exceptions
Page:
ERR50-CPP. Do not abruptly terminate the program
Page:
CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
Page:
EXP61-CPP. A lambda object must not outlive any of its reference captured objects
Page:
EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
Page:
OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
Page:
ERR55-CPP. Honor exception specifications
Page:
EXP57-CPP. Do not cast or delete pointers to incomplete classes
Page:
OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
Page:
MEM51-CPP. Properly deallocate dynamically allocated resources
Hierarchy
Parent Page
Page:
CC. Analyzers
Labels
Global Labels (1)
analyzer
Recent Changes
Time
Editor
Sep 27, 2023 08:31
David Svoboda
View Changes
Jul 13, 2023 13:35
David Svoboda
View Changes
Jun 06, 2023 12:23
David Svoboda
View Changes
Apr 19, 2023 14:03
David Svoboda
View Changes
Apr 06, 2023 08:02
David Svoboda
View Page History
Outgoing Links
External Links (45)
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:
Astrée_V
Overview
Content Tools
{"serverDuration": 112, "requestCorrelationId": "6b98a42ad50d2466"}