Added_Virtual_Method
High
V-table
Virtual method @target has been added to this class.
The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications.
You should add several padding virtual methods at end of class declaration and use them one by one in the course of interface evolution.
Added_Pure_Virtual_Method
High
V-table
Pure virtual method @target has been added to this class.
1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method.
2) The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications.
Added_Virtual_Method_At_End_Of_Leaf_Copying_Class
Medium
V-table
Virtual method @target has been added to this class.
The layout of v-table has been changed. This leaf class has no exported constructors and therefore applications will copy an old v-table of the class that will not contain a pointer to added virtual method. Call of any method in this class may result in crash or incorrect behavior of applications.
NOTE: if new virtual method is called only from other new methods, then binary compatibility should not be affected.
Added_Virtual_Method_At_End_Of_Leaf_Allocable_Class
Safe
V-table
Virtual method @target has been added to this class.
No effect. You can add virtual functions at end of leaf classes with exported constructors.
Added_First_Virtual_Method
High
V-table
First virtual method @target has been added to this class.
1) The layout of type structure has been shifted by @word_size bytes by the added v-table pointer.
2) Size of class has been increased by @word_size bytes.
Removed_Virtual_Method
High
V-table
Virtual method @target has been removed from this class.
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications.
Removed_Pure_Virtual_Method
High
V-table
Pure virtual method @target has been removed from this class.
The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications.
Removed_Last_Virtual_Method
High
V-table
Last virtual method @target has been removed from this class.
1) The layout of type structure has been shifted by @word_size bytes by the removed v-table pointer.
2) Size of class has been decreased by @word_size bytes.
Virtual_Replacement
Medium
V-table
Virtual method @target has been added to this class instead of @old_value.
Applications will pass parameters of older replaced method to newly added virtual method. This may result in crash or incorrect behavior of applications.
Pure_Virtual_Replacement
Medium
V-table
Pure virtual method @target has been added to this class instead of @old_value.
Applications will provide an older method to the library instead of expected newely added virtual method. This may result in crash or incorrect behavior of applications.
Virtual_Table_Changed_Unknown
Medium
V-table
The layout of v-table has been changed for **unknown** reason.
Call of any method in this class may result in crash or incorrect behavior of applications.
Virtual_Method_Position
High
V-table
The relative position of virtual method @target has been changed from @old_value to @new_value.
The layout of v-table has been changed. Call of this virtual method may result in crash or incorrect behavior of applications.
Pure_Virtual_Method_Position
High
V-table
The relative position of pure virtual method @target has been changed from @old_value to @new_value.
The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications.
Overridden_Virtual_Method
Low
V-table
Virtual method @old_value has been overridden by @new_value.
Method @new_value will be called instead of @old_value by old applications.
Overridden_Virtual_Method_B
Low
V-table
Virtual method @old_value has been overridden by @new_value.
Method @new_value will be called instead of @old_value by old applications.
Size_Of_Allocable_Class_Increased
High
Classes
Size of this class has been increased from @old_size to @new_size.
1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighboring objects on the stack or heap.
2) The memory layout and size of subclasses will be changed.
Size_Of_Allocable_Class_Decreased
Medium
Classes
Size of this class has been decreased from @old_size to @new_size.
Previous accesses of applications to public fields of this class or its subclasses may be incorrect.
Size_Of_Copying_Class
High
Classes
Size of this class has been changed from @old_size to @new_size.
1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications.
2) The memory layout and size of subclasses will be changed.
Base_Class_Position
Low
Classes
The relative position of class @target has been changed from @old_value to @new_value in the list of base classes.
Possible incorrect access of applications to the memory occupied by the base classes.
Base_Class_Became_Virtually_Inherited
Medium
Classes
Base class @target became **virtually** inherited.
Size, memory layout and v-table layout of this class and subclasses may change.
Base_Class_Became_Non_Virtually_Inherited
Medium
Classes
Base class @target became **non-virtually** inherited.
Size, memory layout and v-table layout of this class and subclasses may change.
Added_Base_Class_And_Shift
High
Classes
Base class @target has been added.
The memory layout in this class has been shifted by @shift bytes.
Added_Base_Class_And_Size
High
Classes
Base class @target has been added.
1) Size of the class has been changed from @old_size to @new_size.
2) The memory layout in this class has been shifted by @shift bytes.
Added_Base_Class_And_Shift_And_VTable
High
Classes
Base class @target has been added.
1) The layout of v-table in this class has been changed.
2) The memory layout in this class has been shifted by @shift bytes.
Added_Base_Class_And_Size_And_VTable
High
Classes
Base class @target has been added.
1) The layout of v-table in this class has been changed.
2) Size of the class has been changed from @old_size to @new_size.
3) The memory layout in this class has been shifted by @shift bytes.
Added_Base_Class_And_VTable
High
Classes
Base class @target has been added.
The layout of v-table in this class has been changed.
Added_Base_Class
Low
Classes
Base class @target has been added.
Possible incorrect access of applications to the memory occupied by the base classes.
Removed_Base_Class_And_Size
High
Classes
Base class @target has been removed.
1) Size of the class has been changed from @old_size to @new_size.
2) The memory layout in this class has been shifted by @shift bytes.
Removed_Base_Class_And_Shift
High
Classes
Base class @target has been removed.
The memory layout in this class has been shifted by @shift bytes.
Removed_Base_Class_And_Shift_And_VTable
High
Classes
Base class @target has been removed.
1) The layout of v-table in this class has been changed.
2) The memory layout in this class has been shifted by @shift bytes.
Removed_Base_Class_And_Size_And_VTable
High
Classes
Base class @target has been removed.
1) The layout of v-table in this class has been changed.
2) Size of the class has been changed from @old_size to @new_size.
3) The memory layout in this class has been shifted by @shift bytes.
Removed_Base_Class_And_VTable
High
Classes
Base class @target has been removed.
The layout of v-table in this class has been changed.
Removed_Base_Class
Low
Classes
Base class @target has been removed.
Possible incorrect access of applications to the memory occupied by the base classes.
DataType_Size
Low
Types
Size of this type has been changed from @old_size to @new_size.
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
DataType_Type
Medium
Types
Type of this type has been changed from @old_value to @new_value.
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
DataType_Size_And_Stack
High
Types
Size of this type has been changed from @old_size to @new_size.
Layout of parameter's stack of several functions has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Moved_Field
Medium
Fields
The relative position of field @target has been changed from @old_value to @new_value.
Applications will access incorrect memory when attempting to access this field.
Moved_Field_And_Size
Medium
Fields
The relative position of field @target has been changed from @old_value to @new_value.
1) Applications will access incorrect memory when attempting to access this field.
2) Size of the inclusive type has been changed.
Moved_Private_Field_And_Size
Low
Fields
The relative position of private field @target has been changed from @old_value to @new_value.
Size of the inclusive type has been changed.
Added_Field
Low
Fields
Field @target has been added to this type.
This field will not be initialized by old clients.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.
Added_Field_And_Size
Low
Fields
Field @target has been added to this type.
1) This field will not be initialized by old clients.
2) Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.
Added_Field_And_Layout
Medium
Fields
Field @target has been added at the middle position of this structural type.
Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
Added_Field_And_Layout_And_Size
Medium
Fields
Field @target has been added at the middle position of this structural type.
1) Size of the inclusive type has been changed.
2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
Added_Private_Field_And_Size
Low
Fields
Field @target has been added to this type.
Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.
Added_Private_Field_And_Layout
Medium
Fields
Field @target has been added at the middle position of this structural type.
Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
Added_Private_Field_And_Layout_And_Size
Medium
Fields
Field @target has been added at the middle position of this structural type.
1) Size of the inclusive type has been changed.
2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
Added_Union_Field_And_Size
Medium
Fields
Field @target has been added to this type.
Size of the union has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.
Added_Union_Field
Low
Fields
Field @target has been added to this type.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.
Removed_Field
Medium
Fields
Field @target has been removed from this type.
Applications will access incorrect memory when attempting to access this field.
Removed_Field_And_Layout
Medium
Fields
Field @target has been removed from the middle position of this structural type.
1) Applications will access incorrect memory when attempting to access this field.
2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
Removed_Field_And_Size
Medium
Fields
Field @target has been removed from this type.
1) Applications will access incorrect memory when attempting to access this field.
2) Size of the inclusive type has been changed.
Removed_Field_And_Layout_And_Size
High
Fields
Field @target has been removed from the middle position of this structural type.
1) Previous accesses of applications to the removed field will be incorrect.
2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
Removed_Private_Field_And_Size
Low
Fields
Field @target has been removed from this type.
Size of the inclusive type has been changed.
Removed_Private_Field_And_Layout
Medium
Fields
Field @target has been removed from the middle position of this structural type.
Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
Removed_Private_Field_And_Layout_And_Size
Medium
Fields
Field @target has been removed from the middle position of this structural type.
1) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
2) Size of the inclusive type has been changed.
Removed_Union_Field_And_Size
Medium
Fields
Field @target has been removed from this union.
1) Applications may access incorrect memory when attempting to access this field.
2) Size of the union has been changed.
Removed_Union_Field
Low
Fields
Field @target has been removed from this union.
Applications may access incorrect memory when attempting to access this field.
Renamed_Field
Low
Fields
Field @target has been renamed to @new_value.
Renaming of a field in data type may indicate a change in the semantic meaning of the field.
Used_Reserved_Field
Low
Fields
Reserved field @target has been replaced by @new_value.
This field will not be initialized by old clients.
Enum_Member_Value
Medium
Constants
Value of member @target has been changed from @old_value to @new_value.
Applications may execute a wrong branch of code in the library and therefore change the behavior.
Enum_Member_Removed
Low
Constants
The member @target has been removed.
This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
Enum_Last_Member_Value
Low
Constants
Value of member @target has been changed from @old_value to @new_value.
Applications may execute a wrong branch of code in the library and therefore change the behavior.
Enum_Private_Member_Value
Safe
Constants
Value of private member @target has been changed from @old_value to @new_value.
No effect.
Enum_Member_Name
Low
Constants
Name of member with value @target has been changed from @old_value to @new_value.
Applications may execute a wrong branch of code in the library and therefore change the behavior.
Field_Type
Low
Fields
Type of field @target has been changed from @old_value to @new_value.
Replacement of the field data type may indicate a change in the semantic meaning of the field.
Field_Type_And_Size
Medium
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
This field may be incorrectly initialized or accessed by applications.
Field_Type_And_Size_And_Layout
Medium
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.
Field_Type_And_Size_And_Type_Size
Medium
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
1) This field may be incorrectly initialized or accessed by applications.
2) Size of the inclusive type has been changed.
Field_Type_And_Size_And_Layout_And_Type_Size
Medium
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
1) Size of the inclusive type has been changed.
2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.
Private_Field_Type_And_Size_And_Layout
Medium
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken.
Private_Field_Type_And_Size
Safe
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
No effect.
Private_Field_Type_And_Size_And_Type_Size
Low
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
Size of the inclusive type has been changed.
Private_Field_Type_And_Size_And_Layout_And_Type_Size
Medium
Fields
Type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
1) Size of the inclusive type has been changed.
2) Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken.
Field_BaseType_And_Size
Low
Fields
Base type of field @target has been changed from @old_value (@old_size) to @new_value (@new_size).
Possible access of applications to incorrect memory through the pointer.
Field_BaseType
Low
Fields
Base type of field @target has been changed from @old_value to @new_value.
Replacement of field base type may indicate a change in the semantic meaning of the field.
Field_PointerLevel_Increased
Medium
Fields
The pointer level of field @target has been increased from @old_value to @new_value.
The library functions may try to access unallocated memory by the dereferencing of old field value and therefore cause a crash of applications.
Field_PointerLevel_Decreased
Low
Fields
The pointer level of field @target has been decreased from @old_value to @new_value.
The library functions will treat the value of this field as the lower-dimension array and will not read all elements. This may change the behavior of applications.
Field_Size
Medium
Fields
Size of field @target has been changed from @old_size to @new_size.
Previous accesses of applications and library functions to this field may be broken.
Struct_Field_Size_Increased
Low
Fields
Size of field @target has been changed from @old_size to @new_size.
Previous accesses of applications and library functions to this field may be broken.
Field_Size_And_Layout
Medium
Fields
Size of field @target has been changed from @old_size to @new_size.
Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.
Field_Size_And_Type_Size
Medium
Fields
Size of field @target has been changed from @old_size to @new_size.
1) Size of the inclusive type has been changed.
2) Previous accesses of applications and library functions to this field may be broken.
Field_Size_And_Layout_And_Type_Size
Medium
Fields
Size of field @target has been changed from @old_size to @new_size.
1) Size of the inclusive type has been changed.
2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.
Private_Field_Size_And_Layout
Medium
Fields
Size of field @target has been changed from @old_size to @new_size.
Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken.
Private_Field_Size
Safe
Fields
Size of field @target has been changed from @old_size to @new_size.
No effect.
Private_Field_Size_And_Type_Size
Low
Fields
Size of field @target has been changed from @old_size to @new_size.
Size of the inclusive type has been changed.
Private_Field_Size_And_Layout_And_Type_Size
Medium
Fields
Size of field @target has been changed from @old_size to @new_size.
1) Size of the inclusive type has been changed.
2) Previous accesses of applications and library functions to the fields at higher positions of the structure definition may be broken.
Typedef_BaseType
Low
Types
Base type has been changed from @old_value to @new_value.
Replacement of the base data type may indicate a change in its semantic meaning.
Typedef_BaseType_Format
Medium
Types
Base type has been changed from @old_value to @new_value of different format.
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
Added_Symbol
Safe
Symbols
Removed_Symbol
High
Symbols
Method_Became_Static
High
Symbols
Method became static.
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Method_Became_Non_Static
High
Symbols
Method became non-static.
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Parameter_Default_Value_Changed
Low
Parameters
The default argument of @param_pos parameter @target has been changed from @old_value to @new_value.
Applications will pass an old default (compile-time) argument that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.
Parameter_Default_Value_Removed
Low
Parameters
The default argument @old_value of @param_pos parameter @target has been removed.
Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications.
Parameter_Default_Value_Added
Safe
Parameters
The default argument @new_value of @param_pos parameter @target has been added.
No effect.
Parameter_Type_And_Register
Medium
Symbols
Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size).
The parameter became passed in different register. Applications will read the wrong memory block instead of the parameter value. Also, distribution of other parameters on the available registers and stack may be changed.
Parameter_Type_And_Stack
High
Parameters
Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size).
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Parameter_Type_And_Size
High
Parameters
Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size).
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Parameter_Type_From_Stack_To_Register
High
Parameters
Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size).
The parameter became passed in the register instead of the stack. This may result in crash or incorrect behavior of applications.
Parameter_Type_From_Register_To_Stack
High
Parameters
Type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size).
The parameter became passed through the stack instead of the register. This may result in crash or incorrect behavior of applications.
Parameter_Type
Low
Parameters
Type of @param_pos parameter @target has been changed from @old_value to @new_value.
Replacement of parameter data type may indicate a change in its semantic meaning.
Parameter_Became_Non_Const
Medium
Parameters
Type of @param_pos parameter @target has been changed from @old_value to @new_value (became non-const).
This function may change parameter @target, but it will be treated as const by old client applications. This may result in crash or incorrect behavior of applications.
Parameter_Removed_Const
Medium
Parameters
Type of @param_pos parameter @target has been changed from @old_value to @new_value (removed const qualifier).
This function may change parameter @target, but it will be treated as const by old client applications. This may result in crash or incorrect behavior of applications.
Parameter_Became_Restrict
Medium
Parameters
Parameter @target became restrict.
Added a new restriction on the parameter: if the memory addressed by the restrict-qualified pointer is modified, no other pointer will access that same memory. The compiler may choose to optimize new library code involving restrict-qualified pointers in a way that might result in incorrect behavior of old applications, that don't meet this restriction.
Parameter_Became_Non_Restrict
Safe
Parameters
Parameter @target became non-restrict.
No effect.
Parameter_Became_Register
Medium
Parameters
Added register modifier to the parameter @target.
The parameter may be passed in a register instead of the calling stack.
Parameter_Became_Non_Register
Medium
Parameters
Removed register modifier from the parameter @target.
The parameter will be passed on the calling stack instead of a register.
Parameter_To_Register
Medium
Parameters
The parameter @target became passed in @new_value register instead of stack.
Violation of the calling convention. This may result in crash or incorrect behavior of applications.
Parameter_From_Register
Medium
Parameters
The parameter @target became passed on stack instead of @old_value register.
Violation of the calling convention. This may result in crash or incorrect behavior of applications.
Parameter_Changed_Register
High
Symbols
The parameter @target became passed in @new_value register instead of @old_value.
Applications will read the wrong memory block instead of the parameter value.
Parameter_Changed_Offset
High
Symbols
The parameter @target became passed at the different offset on the stack (@new_value instead of @old_value).
Violation of the calling convention. This may result in crash or incorrect behavior of applications.
Return_Type_Became_Const
Medium
Symbols
Type of return value became const (has been changed from @old_value to @new_value).
The return value will be treated as non-const by old client applications. This may result in crash or incorrect behavior of applications.
Return_Type_Added_Const
Medium
Symbols
Added **const** qualifier to return value (has been changed from @old_value to @new_value).
The return value will be treated as non-const by old client applications. This may result in crash or incorrect behavior of applications.
Parameter_BaseType_And_Size
Medium
Parameters
Base type of @param_pos parameter @target has been changed from @old_value (@old_size) to @new_value (@new_size).
This parameter may be incorrectly initialized by applications.
Parameter_BaseType
Low
Parameters
Base type of @param_pos parameter @target has been changed from @old_value to @new_value.
Replacement of parameter base type may indicate a change in its semantic meaning.
Parameter_PointerLevel_Increased
High
Parameters
The pointer level of @param_pos parameter @target has been increased from @old_value to @new_value.
The library function may try to access unallocated memory by the dereferencing of old parameter value and therefore cause a crash of applications.
Parameter_PointerLevel_Decreased
Medium
Parameters
The pointer level of @param_pos parameter @target has been decreased from @old_value to @new_value.
The library function will treat the parameter as the lower-dimension array and will not read all elements. This may change the behavior of applications.
NOTE: if this is out-parameter then this change may cause a crash of applications.
Return_Type_And_Size
Medium
Symbols
Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size).
Applications will obtain a different return value and execution may change.
Global_Data_Type_And_Size
Medium
Symbols
Type of this global data has been changed from @old_value (@old_size) to @new_value (@new_size).
Applications will obtain a different value and execution may change.
Return_Type
Low
Symbols
Type of return value has been changed from @old_value to @new_value.
Replacement of return type may indicate a change in its semantic meaning.
Global_Data_Type
Low
Symbols
Type of this global data has been changed from @old_value to @new_value.
Replacement of data type may indicate a change in semantic meaning.
Global_Data_Type_Format
Medium
Symbols
Type of this global data has been changed from @old_value to @new_value of different format.
This global data may be incorrectly accessed by applications.
Global_Data_Size
Medium
Symbols
Size of this global data has been changed from @old_size to @new_size.
Applications will obtain a different value and execution may change.
Return_Type_Became_Void
Medium
Symbols
Type of return value has been changed from @old_value (@old_size) to void.
Applications will not obtain a return value and execution may change.
Return_Type_Became_Void_And_Stack_Layout
High
Symbols
Type of return value has been changed from @old_value (@old_size) to void.
1) Applications will read the wrong memory block instead of the return value.
2) Layout of parameter's stack has been shifted by @word_size bytes because the hidden first argument, that is used to pass the return value, has been removed. All the parameters will be incorrectly initialized by applications.
Return_Type_Became_Void_And_Register
High
Symbols
Type of return value has been changed from @old_value (@old_size) to void.
1) Applications will read the wrong memory block instead of the return value.
2) Distribution of parameters on the available registers and stack has been changed because the hidden first argument, that is used to pass the return value, has been removed. All the parameters will be incorrectly initialized by applications.
Return_Type_From_Void_And_Stack_Layout
High
Symbols
Type of return value has been changed from void to @new_value (@new_size).
Layout of parameter's stack has been shifted by @word_size bytes because the return value became passed in memory as the hidden first argument, that was used to pass the return value. All the parameters will be incorrectly initialized by applications.
Return_Type_From_Void_And_Register
High
Symbols
Type of return value has been changed from void to @new_value (@new_size).
Distribution of parameters on the available registers and stack has been changed because the return value became passed in memory as the hidden first argument, that is used to pass the return value. All the parameters will be incorrectly initialized by applications.
Return_Type_From_Void
Low
Symbols
Type of return value has been changed from void to @new_value (@new_size).
Replacement of return type may indicate a change in its semantic meaning.
Return_Type_From_Register_To_Stack
High
Symbols
Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size).
1) The return value became passed in memory as the hidden first argument (address of the space on the stack provided by the caller) instead of the register and therefore the layout of parameter's stack has been shifted by @word_size bytes. All the parameters will be incorrectly initialized by applications.
2) Applications will read the wrong memory block instead of the return value.
Return_Type_And_Register_Became_Hidden_Parameter
High
Symbols
Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size).
1) The return value became passed in different register as the hidden first argument (address of the space on the stack provided by the caller) and therefore distribution of parameters on the available registers and stack will be changed. All the parameters will be incorrectly initialized by applications.
2) Applications will read the wrong memory block instead of the return value.
Return_Type_From_Stack_To_Register
High
Symbols
Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size).
1) The return value became passed in register instead of the hidden first argument (address of the space on the stack provided by the caller) and therefore the layout of parameter's stack has been shifted by @word_size bytes. All the parameters will be incorrectly initialized by applications.
2) Applications will read the wrong memory block instead of the return value.
Return_Type_And_Register_Was_Hidden_Parameter
High
Symbols
Type of return value has been changed from @old_value (@old_size) to @new_value (@new_size).
1) The return value became passed in register instead of the hidden first argument, that is passed in different register, and therefore distribution of parameters on the available registers and stack will be changed. All the parameters will be incorrectly initialized by applications.
2) Applications will read the wrong memory block instead of the return value.
Global_Data_Became_Non_Const
Medium
Symbols
This global data became non-const.
This data will be copied to applications at compile time. Any attempts to change this global data by library functions may result in crash of applications.
Global_Data_Removed_Const
Low
Symbols
Removed **const** qualifier from the type of this global data.
This data will be treated as const by old client applications. Any attempts to change this global data by library functions may result in undefined behavior.
Global_Data_Became_Const
Medium
Symbols
This global data became const.
Any attempts of old applications to change this global data may result in crash.
Global_Data_Added_Const
Medium
Symbols
Added **const** qualifier to the type of this global data.
Any attempts of old applications to change this global data may result in crash.
Return_BaseType_And_Size
Medium
Symbols
Base type of return value has been changed from @old_value (@old_size) to @new_value (@new_size).
Applications will obtain a different return value and execution may change.
Return_BaseType
Low
Symbols
Base type of return value has been changed from @old_value to @new_value.
Replacement of return base type may indicate a change in its semantic meaning.
Return_PointerLevel_Increased
Low
Symbols
The pointer level of return value has been increased from @old_value to @new_value.
Applications will treat the return value as the lower-dimension array and will not read all elements. This may change the behavior of applications.
Return_PointerLevel_Decreased
Medium
Symbols
The pointer level of return value has been decreased from @old_value to @new_value.
Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
Removed_Parameter
Medium
Parameters
@param_pos parameter @target has been removed from the calling stack.
This parameter will be ignored by the function.
Removed_Unnamed_Parameter
Medium
Parameters
Parameter @target of type @param_type has been removed from the calling stack.
This parameter will be ignored by the function.
Added_Parameter
Medium
Parameters
Parameter @target of type @param_type has been added to the calling stack.
This parameter will not be initialized by old clients.
Added_Unnamed_Parameter
Medium
Parameters
@param_pos parameter @target has been added to the calling stack.
This parameter will not be initialized by old clients.
Removed_Middle_Parameter
High
Parameters
@param_pos middle parameter @target has been removed from the calling stack.
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Removed_Middle_Unnamed_Parameter
High
Parameters
Middle parameter @target of type @param_type has been removed from the calling stack.
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Added_Middle_Parameter
High
Parameters
Parameter @target of type @param_type has been added to the calling stack at the middle position.
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Added_Middle_Unnamed_Parameter
High
Parameters
@param_pos parameter @target has been added to the calling stack at the middle position.
Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
Renamed_Parameter
Low
Parameters
@param_pos parameter @target has been renamed to @new_value.
Renaming of a parameter may indicate a change in its semantic meaning.
Symbol_Became_Static
High
Symbols
Method became static.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Symbol_Became_Non_Static
High
Symbols
Method became non-static.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Symbol_Became_Virtual
High
Symbols
Method became virtual.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Symbol_Became_Non_Virtual
High
Symbols
Method became non-virtual.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Symbol_Changed_Return
High
Symbols
Type of return value has been changed from @old_type to @new_type.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Global_Data_Symbol_Changed_Type
High
Symbols
Type of this global data has been changed from @old_type to @new_type.
The name of the appropriate symbol for this data on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Symbol_Changed_Parameters
High
Symbols
Parameters list has been changed.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Method_Became_Non_Const
High
Symbols
Method became non-const.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Method_Became_Const
High
Symbols
Method became const.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Method_Became_Volatile
High
Symbols
Method became volatile.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Method_Became_Non_Volatile
High
Symbols
Method became non-volatile.
The name of the appropriate symbol for this function on binary level has been changed from @old_value to @new_value. This may cause "undefined reference" linker error in old client applications.
Changed_Constant
Low
Constants
The value of constant @target has been changed from @old_value to @new_value.
Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications.
Added_Constant
Safe
Constants
The constant @target with value @new_value has been added.
No effect.
Removed_Constant
Low
Constants
The constant @target with value @old_value has been removed.
The value of this constant may no longer be properly handled by new-version library functions.
Field_Became_Volatile
Low
Fields
Field @target became volatile.
The value of this field can begin to change in ways outside the control of old client applications.
Field_Became_Non_Volatile
Safe
Fields
Field @target became non-volatile.
No effect.
Return_Value_Became_Volatile
Low
Symbols
Return value became volatile.
Old client applications will get volatile object instead of non-volatile, but may be optimized by the compiler and cannot handle volatile objects.
Parameter_Became_Non_Volatile
Low
Symbols
Parameter @target became non-volatile.
Old client applications will pass volatile object to the function that may be optimized by the compiler and cannot handle volatile objects.
Field_Type_Format
Medium
Fields
Type of field @target has been changed from @old_value to @new_value of different format.
This field may be incorrectly initialized or accessed by applications.
Field_BaseType_Format
Medium
Fields
Base type of field @target has been changed from @old_value to @new_value of different format.
This field may be incorrectly initialized or accessed by applications.
Parameter_Type_Format
Medium
Parameters
Type of parameter @target has been changed from @old_value to @new_value of different format.
This parameter may be incorrectly initialized by applications.
Parameter_BaseType_Format
Medium
Parameters
Base type of parameter @target has been changed from @old_value to @new_value of different format.
This parameter may be incorrectly initialized by applications.
Return_Type_Format
Medium
Symbols
Type of return value has been changed from @old_value to @new_value of different format.
Applications will obtain a different return value and execution may change.
Return_Type_And_Register
Medium
Symbols
Type of return value has been changed from @old_value to @new_value.
The return value became passed in different register. Applications will read the wrong memory block instead of the return value. Also, distribution of parameters on the available registers and stack may be changed.
Return_BaseType_Format
Medium
Symbols
Base type of return value has been changed from @old_value to @new_value of different format.
This parameter may be incorrectly initialized by applications.
Parameter_Became_Non_VaList
Low
Parameters
Type of @param_pos parameter has been changed from ... (va_list) to @new_value.
This parameter may not be initialized by old clients.
Parameter_Became_VaList
Low
Parameters
Type of @param_pos parameter @target has been changed from @old_value to ... (va_list).
The semantic meaning of the parameter may change.
Added_Enum_Member
Safe
Constants
The member @target with value @new_value has been added.
No effect.
Global_Data_Value_Changed
Low
Symbols
The initial value of this global data has been changed from @old_value to @new_value.
Applications will use an old value of this data instead of the new one. This may cause incorrect behavior of applications.
Field_Became_Mutable
Low
Fields
Field @target became **mutable**.
The value of this field can begin to change in ways outside the control of old client applications.
Field_Became_Non_Mutable
Low
Fields
Field @target became **non-mutable**.
The value of this field can still be changed by const methods of old client applications, but it's not expected by new-version library.
Method_Became_Private
Low
Symbols
This method became **private**.
Old applications will continue using this method, but it may require a different initialization of the environment and parameters.
Method_Became_Protected
Low
Symbols
This method became **protected**.
Old applications will continue using this method, but it may require a different initialization of the environment and parameters.
Method_Became_Public
Safe
Symbols
This method became **public**.
No effect.
Global_Data_Became_Private
Low
Symbols
This global data became **private**.
Old applications will continue using this global data, but it may require a different initialization of the environment.
Global_Data_Became_Protected
Low
Symbols
This global data became **protected**.
Old applications will continue using this global data, but it may require a different initialization of the environment.
Global_Data_Became_Public
Safe
Symbols
This global data became **public**.
No effect.
Field_Became_Const
Low
Types
Field @target became **const**.
The value of this field is expected to be **const** in new library version, but can be modified by old applications.
Field_Became_Non_Const
Safe
Types
Field @target became **non-const**.
No effect.
Field_Added_Const
Low
Types
Added **const** qualifier to field @target.
The value of this field is expected to be **const** in new library version, but can be modified by old applications.
Field_Removed_Const
Safe
Types
Removed **const** qualifier from field @target.
No effect.
Field_Became_Private
Low
Types
Field @target became **private**.
Old applications will continue using this field, but it may require a different initialization of class object.
Field_Became_Protected
Low
Types
Field @target became **protected**.
Old applications will continue using this field, but it may require a different initialization of class object.
Virtual_Method_Became_Pure
Medium
Types
Virtual method @target became **pure**.
Old applications will not provide implementation for this pure virtual method. This may result in crash or incorrect behavior of applications.
Virtual_Method_Became_Non_Pure
Safe
Types
Virtual method @target became **non-pure**.
No effect.
Type_Became_Opaque
Medium
Types
This type became **opaque**.
The internal structure of this type is hidden in the new library version and may be different. This may result in crash or incorrect behavior of applications.