AutosarC++18_03-A12.1.1

Constructors shall explicitly initialize all virtual base classes, all direct non-virtual base classes and all non-static data members

Required inputs: IR

Possible Messages

Key

Text

Severity

Disabled

default_ctor_missing_fields

Compiler-generated constructor leaves some fields uninitialized.

None

False

implicit_field_init

Field is only implicitly initialized in constructor.

None

False

missing_base_class_init

Base class is not explicitly initialized in constructor.

None

False

missing_field_init

Field is not initialized in constructor.

None

False

Options

exclude_aggregates

exclude_aggregates : bool = False

Whether to exclude constructors of aggregate types.
 

include_empty_classes

include_empty_classes : bool = True

Whether initializations should be enforced for classes without non-static data members.
 

include_pure_virtual

include_pure_virtual : bool = True

Whether initialization should be enforced for base classes that contain only pure virtual methods (and compiler-generated methods if applicable).
 

init_functions

init_functions : set[bauhaus.analysis.config.FunctionName] = {'Init', 'init'}

Names of functions to be inspected as well when called directly from constructor.
 

inspect_directly_called_methods

inspect_directly_called_methods : bool = False

Inspect all methods directly called from constructor.
 

only_member_initializer_list

only_member_initializer_list : bool = False

Only inspect member initializer list and not the constructor body/methods.
 

report_missing_field_constructors

report_missing_field_constructors : bool = True

Enables detection of constructors which rely on implicit field constructor calls.