Test Info
Library Name | libsample_cpp |
Version #1 | 1.0 |
Version #2 | 2.0 |
Arch | x86 |
GCC Version | 10.2.0 |
Subject | Binary Compatibility |
Test Results
Total Header Files | 1 |
Total Libraries | 1 |
Total Symbols / Types | 226 / 124 |
Compatibility |
48.7% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 37 |
Removed Symbols | High | 38 |
Problems with Data Types | High | 52 |
Medium | 31 |
Low | 45 |
Problems with Symbols | High | 15 |
Medium | 10 |
Low | 24 |
Problems with Constants | Low | 1 |
Other Changes in Data Types | - | 4 |
Other Changes in Symbols | - | 3 |
Added Symbols 37
libsample.h,
libsample.so
namespace TestNS
AddedBaseClass::__ct [C1] ( )
_ZN6TestNS14AddedBaseClassC1Ev
AddedBaseClass::__ct [C2] ( )
_ZN6TestNS14AddedBaseClassC2Ev
AddedBaseClass::method ( )
_ZN6TestNS14AddedBaseClass6methodEv
AddedFirstVirtualMethod::addedMethod ( int param )
_ZN6TestNS23AddedFirstVirtualMethod11addedMethodEi
addedFunc ( FUNCPTR_TYPE*const** f )
_ZN6TestNS9addedFuncEPPKPPFiiiE
addedFunc2 ( void*** param )
_ZN6TestNS10addedFunc2EPPPv
addedFunc3 ( struct DStruct* p )
_ZN6TestNS10addedFunc3EPNS_7DStructE
AddedInterface::added_func ( AddedInterface param )
_ZN6TestNS14AddedInterface10added_funcES0_
addedParameter ( int param, int added_param )
_ZN6TestNS14addedParameterEii
AddedVariable::i1 [data]
_ZN6TestNS13AddedVariable2i1E
AddedVariable::i2 [data]
_ZN6TestNS13AddedVariable2i2E
AddedVirtualMethod::addedMethod ( int param )
_ZN6TestNS18AddedVirtualMethod11addedMethodEi
AddedVirtualMethodAtEnd::addedMethod ( int param )
_ZN6TestNS23AddedVirtualMethodAtEnd11addedMethodEi
AddedVirtualMethodAtEnd_DefaultConstructor::addedMethod ( int param )
_ZN6TestNS42AddedVirtualMethodAtEnd_DefaultConstructor11addedMethodEi
DefaultConstructor::addedMethod ( int param )
_ZN6TestNS18DefaultConstructor11addedMethodEi
funcParameterBaseType ( long long* param )
_ZN6TestNS21funcParameterBaseTypeEPx
funcParameterPointerLevel ( int** param )
_ZN6TestNS25funcParameterPointerLevelEPPi
funcParameterPointerLevelAndSize ( long long* param )
_ZN6TestNS32funcParameterPointerLevelAndSizeEPx
funcParameterType ( float param, int other_param )
_ZN6TestNS17funcParameterTypeEfi
funcParameterTypeAndSize ( long long param, int other_param )
_ZN6TestNS24funcParameterTypeAndSizeExi
globalDataBecameNonConst [data]
_ZN6TestNS24globalDataBecameNonConstE
MethodBecameConst::method ( int param ) const
_ZNK6TestNS17MethodBecameConst6methodEi
MethodBecameConstVolatile::method ( int param ) const volatile
_ZNVK6TestNS25MethodBecameConstVolatile6methodEi
MethodBecameNonConst::method ( int param )
_ZN6TestNS20MethodBecameNonConst6methodEi
MethodBecameVolatile::method ( int param ) volatile
_ZNV6TestNS20MethodBecameVolatile6methodEi
parameterTypedefChange ( int param )
_ZN6TestNS22parameterTypedefChangeEi
PureVirtualReplacement_Derived::methodNew ( int param )
_ZN6TestNS30PureVirtualReplacement_Derived9methodNewEi
RemovedAddedVirtualSymbol::addedMethod ( int param )
_ZN6TestNS25RemovedAddedVirtualSymbol11addedMethodEi
removedParameter ( int param )
_ZN6TestNS16removedParameterEi
renamedFunc_NewName ( int param )
_ZN6TestNS19renamedFunc_NewNameEi
UnsafeVirtualOverride::bar ( )
_ZN6TestNS21UnsafeVirtualOverride3barEv
VirtualReplacement::methodNew ( int param )
_ZN6TestNS18VirtualReplacement9methodNewEi
VirtualTableSize::addedMethod ( int param )
_ZN6TestNS16VirtualTableSize11addedMethodEi
vtable for AddedFirstVirtualMethod [data]
_ZTVN6TestNS23AddedFirstVirtualMethodE
vtable for AddedVirtualBase1 [data]
_ZTVN6TestNS17AddedVirtualBase1E
vtable for AddedVirtualBase2 [data]
_ZTVN6TestNS17AddedVirtualBase2E
vtable for BaseClassBecameVirtuallyInherited [data]
_ZTVN6TestNS33BaseClassBecameVirtuallyInheritedE
to the top
Removed Symbols 38
libsample.h,
libsample.so
namespace TestNS
addedParameter ( int param )
_ZN6TestNS14addedParameterEi
BaseTemplate<int>::~__dt [D0] ( )
_ZN6TestNS12BaseTemplateIiED0Ev
BaseTemplate<int>::~__dt [D1] ( )
_ZN6TestNS12BaseTemplateIiED1Ev
BaseTemplate<int>::~__dt [D2] ( )
_ZN6TestNS12BaseTemplateIiED2Ev
funcParameterBaseType ( int* param )
_ZN6TestNS21funcParameterBaseTypeEPi
funcParameterPointerLevel ( int* param )
_ZN6TestNS25funcParameterPointerLevelEPi
funcParameterPointerLevelAndSize ( long long param )
_ZN6TestNS32funcParameterPointerLevelAndSizeEx
funcParameterType ( int param, int other_param )
_ZN6TestNS17funcParameterTypeEii
funcParameterTypeAndSize ( int param, int other_param )
_ZN6TestNS24funcParameterTypeAndSizeEii
functionBecameInline ( int param )
_ZN6TestNS20functionBecameInlineEi
globalDataBecameConst [data]
_ZN6TestNS21globalDataBecameConstE
GlobalDataBecameConst::Data [data]
_ZN6TestNS21GlobalDataBecameConst4DataE
MethodBecameConst::method ( int param )
_ZN6TestNS17MethodBecameConst6methodEi
MethodBecameConstVolatile::method ( int param )
_ZN6TestNS25MethodBecameConstVolatile6methodEi
MethodBecameNonConst::method ( int param ) const
_ZNK6TestNS20MethodBecameNonConst6methodEi
MethodBecameVolatile::method ( int param )
_ZN6TestNS20MethodBecameVolatile6methodEi
OverriddenVirtualMethodB::method2 ( int param )
_ZN6TestNS24OverriddenVirtualMethodB7method2Ei
parameterTypedefChange ( float param )
_ZN6TestNS22parameterTypedefChangeEf
PureVirtualReplacement_Derived::methodOld ( int param )
_ZN6TestNS30PureVirtualReplacement_Derived9methodOldEi
RemovedAddedVirtualSymbol::removedMethod ( int param )
_ZN6TestNS25RemovedAddedVirtualSymbol13removedMethodEi
RemovedBaseClass::method ( )
_ZN6TestNS16RemovedBaseClass6methodEv
RemovedBaseClass::__ct [C1] ( )
_ZN6TestNS16RemovedBaseClassC1Ev
RemovedBaseClass::__ct [C2] ( )
_ZN6TestNS16RemovedBaseClassC2Ev
RemovedConstOverload::removed ( ) const
_ZNK6TestNS20RemovedConstOverload7removedEv
removedFunc2 ( void*** param )
_ZN6TestNS12removedFunc2EPPPv
RemovedInlineVirtualFunction::removedMethod ( int param )
_ZN6TestNS28RemovedInlineVirtualFunction13removedMethodEi
RemovedInterface::removed_func ( RemovedInterface param )
_ZN6TestNS16RemovedInterface12removed_funcES0_
RemovedLastVirtualSymbol::removedMethod ( int param )
_ZN6TestNS24RemovedLastVirtualSymbol13removedMethodEi
removedParameter ( int param, int removed_param )
_ZN6TestNS16removedParameterEii
RemovedVirtualDestructor::~__dt [D0] ( )
_ZN6TestNS24RemovedVirtualDestructorD0Ev
RemovedVirtualDestructor::~__dt [D1] ( )
_ZN6TestNS24RemovedVirtualDestructorD1Ev
RemovedVirtualDestructor::~__dt [D2] ( )
_ZN6TestNS24RemovedVirtualDestructorD2Ev
RemovedVirtualSymbol::removedMethod ( int param )
_ZN6TestNS20RemovedVirtualSymbol13removedMethodEi
renamedFunc ( int param )
_ZN6TestNS11renamedFuncEi
TestRemovedTemplate<7u, char>::method ( int p1 )
_ZN6TestNS19TestRemovedTemplateILj7EcE6methodEi
VirtualReplacement::methodOld ( int param )
_ZN6TestNS18VirtualReplacement9methodOldEi
vtable for RemovedLastVirtualMethod [data]
_ZTVN6TestNS24RemovedLastVirtualMethodE
vtable for RemovedLastVirtualSymbol [data]
_ZTVN6TestNS24RemovedLastVirtualSymbolE
to the top
Problems with Data Types, High Severity 52
libsample.h
[+] class OutsideNS 1
|
Change |
Effect |
1 |
Size of this class has been changed from 4 bytes to 8 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
OutsideNS::someMethod ( )
This method is from 'OutsideNS' class.
libsample.h
namespace TestNS
[+] class AddedBitfield 1
|
Change |
Effect |
1 |
Size of this class has been changed from 36 bytes to 40 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
AddedBitfield::method ( AddedBitfield param )
1st parameter 'param' is of type 'AddedBitfield'.
[+] class AddedFieldAndSize 1
|
Change |
Effect |
1 |
Size of this class has been changed from 28 bytes to 40 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
AddedFieldAndSize::method ( AddedFieldAndSize param )
1st parameter 'param' is of type 'AddedFieldAndSize'.
[+] class AddedFirstVirtualMethod 2
|
Change |
Effect |
1 |
Size of this class has been changed from 1 byte to 4 bytes. |
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. |
2 |
First virtual method addedMethod ( int ) has been added to this class. |
1) The layout of type structure has been shifted by 4 bytes by the added v-table pointer. 2) Size of class has been increased by 4 bytes. |
[+] affected symbols: 1 (0.4%)
AddedFirstVirtualMethod::method ( int param )
This method is from 'AddedFirstVirtualMethod' class.
[+] class AddedMiddleFieldAndSize 1
|
Change |
Effect |
1 |
Size of this class has been changed from 20 bytes to 24 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
AddedMiddleFieldAndSize::method ( AddedMiddleFieldAndSize param )
1st parameter 'param' is of type 'AddedMiddleFieldAndSize'.
[+] class AddedPrivateVirtualSymbol 1
|
Change |
Effect |
1 |
Virtual method addedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
AddedPrivateVirtualSymbol::method |
AddedPrivateVirtualSymbol::method |
12 |
|
AddedPrivateVirtualSymbol::addedMethod |
[+] affected symbols: 3 (1.3%)
AddedPrivateVirtualSymbol::method ( int param )
This method is from 'AddedPrivateVirtualSymbol' class.
AddedPrivateVirtualSymbol::__ct ( )
This constructor is from 'AddedPrivateVirtualSymbol' class.
AddedPrivateVirtualSymbol_Derived::method1 ( int param )
This method is from derived class 'AddedPrivateVirtualSymbol_Derived'.
[+] class AddedPureVirtualMethod 1
|
Change |
Effect |
1 |
Pure virtual method addedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
AddedPureVirtualMethod::method |
__cxa_pure_virtual |
12 |
|
AddedPureVirtualMethod::method |
[+] affected symbols: 2 (0.9%)
AddedPureVirtualMethod::otherMethod ( int param )
This method is from 'AddedPureVirtualMethod' class.
AddedPureVirtualMethod::method ( int param )
This method is from 'AddedPureVirtualMethod' class.
[+] class AddedVariable 3
|
Change |
Effect |
1 |
Field i1 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. |
2 |
Field i2 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. |
3 |
Size of this class has been changed from 24 bytes to 16 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
AddedVariable::method ( AddedVariable param )
1st parameter 'param' is of type 'AddedVariable'.
[+] class AddedVirtualBase1 1
|
Change |
Effect |
1 |
Size of this class has been increased from 40 bytes to 44 bytes. |
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. |
[+] affected symbols: 3 (1.3%)
AddedVirtualBase1::method ( )
This method is from 'AddedVirtualBase1' class.
AddedVirtualBase1::__ct ( )
This constructor is from 'AddedVirtualBase1' class.
BaseClassBecameVirtuallyInherited::__ct ( )
This constructor is from derived class 'BaseClassBecameVirtuallyInherited'.
[+] class AddedVirtualBase2 1
|
Change |
Effect |
1 |
Size of this class has been increased from 40 bytes to 44 bytes. |
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. |
[+] affected symbols: 3 (1.3%)
AddedVirtualBase2::method ( )
This method is from 'AddedVirtualBase2' class.
AddedVirtualBase2::__ct ( )
This constructor is from 'AddedVirtualBase2' class.
BaseClassBecameVirtuallyInherited::__ct ( )
This constructor is from derived class 'BaseClassBecameVirtuallyInherited'.
[+] class AddedVirtualMethod 1
|
Change |
Effect |
1 |
Virtual method addedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
AddedVirtualMethod::method |
AddedVirtualMethod::addedMethod |
12 |
|
AddedVirtualMethod::method |
[+] affected symbols: 1 (0.4%)
AddedVirtualMethod::method ( int param )
This method is from 'AddedVirtualMethod' class.
[+] class AllocableClassSize 1
|
Change |
Effect |
1 |
Size of this class has been increased from 40 bytes to 120 bytes. |
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. |
[+] affected symbols: 2 (0.9%)
AllocableClassSize::method ( )
This method is from 'AllocableClassSize' class.
AllocableClassSize::__ct ( )
This constructor is from 'AllocableClassSize' class.
[+] class BaseTemplate<int> 1
|
Change |
Effect |
1 |
Virtual method ~__dt ( ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 5 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
BaseTemplate<int>::method |
BaseTemplate<int>::method |
12 |
~BaseTemplate<int> |
|
16 |
~BaseTemplate<int> |
|
[+] affected symbols: 2 (0.9%)
RemovedVirtualDestructor::method2 ( int param )
This method is from derived class 'RemovedVirtualDestructor'.
RemovedVirtualDestructor::~__dt ( )
This destructor is from derived class 'RemovedVirtualDestructor'.
[+] class BecameVirtualMethod 1
|
Change |
Effect |
1 |
Virtual method becameVirtual ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
BecameVirtualMethod::method |
BecameVirtualMethod::becameVirtual |
12 |
|
BecameVirtualMethod::method |
[+] affected symbols: 1 (0.4%)
BecameVirtualMethod::method ( int param )
This method is from 'BecameVirtualMethod' class.
[+] class Callback 1
|
Change |
Effect |
1 |
Pure virtual method added_callback ( int, int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 5 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
__cxa_pure_virtual |
__cxa_pure_virtual |
12 |
__cxa_pure_virtual |
__cxa_pure_virtual |
16 |
|
__cxa_pure_virtual |
[+] affected symbols: 2 (0.9%)
Callback::callback1 ( int x, int y )
This method is from 'Callback' class.
Callback::callback2 ( int x, int y )
This method is from 'Callback' class.
[+] class ChangedBaseClassAndSize 3
|
Change |
Effect |
1 |
Base class BaseClass2 has been added. |
1) Size of the class has been changed from 40 bytes to 120 bytes. 2) The memory layout in this class has been shifted by 80 bytes. |
2 |
Base class BaseClass has been removed. |
1) Size of the class has been changed from 40 bytes to 120 bytes. 2) The memory layout in this class has been shifted by 80 bytes. |
3 |
Size of this class has been increased from 40 bytes to 120 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
ChangedBaseClassAndSize::__ct ( )
This constructor is from 'ChangedBaseClassAndSize' class.
[+] class CopyingClassSize 1
|
Change |
Effect |
1 |
Size of this class has been changed from 20 bytes to 60 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
CopyingClassSize::method ( )
This method is from 'CopyingClassSize' class.
[+] class FieldPointerLevelAndSize 1
|
Change |
Effect |
1 |
Size of this class has been changed from 24 bytes to 20 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
FieldPointerLevelAndSize::method ( FieldPointerLevelAndSize param )
1st parameter 'param' is of type 'FieldPointerLevelAndSize'.
[+] class FieldTypeAndSize 1
|
Change |
Effect |
1 |
Size of this class has been changed from 20 bytes to 24 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
FieldTypeAndSize::method ( FieldTypeAndSize param )
1st parameter 'param' is of type 'FieldTypeAndSize'.
[+] class ObjectAddedMember 1
|
Change |
Effect |
1 |
Size of this class has been changed from 28 bytes to 40 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
ObjectAddedMember::method ( int param )
This method is from 'ObjectAddedMember' class.
[+] class PureVirtualFunctionPosition 2
|
Change |
Effect |
1 |
The relative position of pure virtual method method1 ( int ) has been changed from 0 to 1. |
The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications. |
2 |
The relative position of pure virtual method method2 ( int ) has been changed from 1 to 0. |
The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
__cxa_pure_virtual |
__cxa_pure_virtual |
12 |
__cxa_pure_virtual |
__cxa_pure_virtual |
[+] affected symbols: 2 (0.9%)
PureVirtualFunctionPosition::method1 ( int param )
This method is from 'PureVirtualFunctionPosition' class.
PureVirtualFunctionPosition::method2 ( int param )
This method is from 'PureVirtualFunctionPosition' class.
[+] class RemovedFieldAndSize 1
|
Change |
Effect |
1 |
Size of this class has been changed from 36 bytes to 28 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
RemovedFieldAndSize::method ( RemovedFieldAndSize param )
1st parameter 'param' is of type 'RemovedFieldAndSize'.
[+] class RemovedInlineVirtualFunction 1
|
Change |
Effect |
1 |
Virtual method removedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
RemovedInlineVirtualFunction::removedMethod |
RemovedInlineVirtualFunction::method |
12 |
RemovedInlineVirtualFunction::method |
|
[+] affected symbols: 2 (0.9%)
RemovedInlineVirtualFunction::removedMethod ( int param )
This method is from 'RemovedInlineVirtualFunction' class.
RemovedInlineVirtualFunction::method ( int param )
This method is from 'RemovedInlineVirtualFunction' class.
[+] class RemovedLastVirtualMethod 3
|
Change |
Effect |
1 |
Size of this class has been changed from 4 bytes to 1 byte. |
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. |
2 |
Last virtual method removedMethod ( int ) has been removed from this class. |
1) The layout of type structure has been shifted by 4 bytes by the removed v-table pointer. 2) Size of class has been decreased by 4 bytes. |
3 |
Virtual method removedMethod ( int ) 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. |
[+] affected symbols: 2 (0.9%)
RemovedLastVirtualMethod::removedMethod ( int param )
This method is from 'RemovedLastVirtualMethod' class.
RemovedLastVirtualMethod::method ( int param )
This method is from 'RemovedLastVirtualMethod' class.
[+] class RemovedLastVirtualSymbol 3
|
Change |
Effect |
1 |
Size of this class has been changed from 4 bytes to 1 byte. |
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. |
2 |
Last virtual method removedMethod ( int ) has been removed from this class. |
1) The layout of type structure has been shifted by 4 bytes by the removed v-table pointer. 2) Size of class has been decreased by 4 bytes. |
3 |
Virtual method removedMethod ( int ) 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. |
[+] affected symbols: 2 (0.9%)
RemovedLastVirtualSymbol::removedMethod ( int param )
This method is from 'RemovedLastVirtualSymbol' class.
RemovedLastVirtualSymbol::method ( int param )
This method is from 'RemovedLastVirtualSymbol' class.
[+] class RemovedMiddleFieldAndSize 2
|
Change |
Effect |
1 |
Field removed_middle_member 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. |
2 |
Size of this class has been changed from 24 bytes to 20 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
RemovedMiddleFieldAndSize::method ( RemovedMiddleFieldAndSize param )
1st parameter 'param' is of type 'RemovedMiddleFieldAndSize'.
[+] class RemovedPureSymbol 1
|
Change |
Effect |
1 |
Pure virtual method removedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
RemovedPureSymbol::method |
RemovedPureSymbol::method |
12 |
__cxa_pure_virtual |
|
[+] affected symbols: 1 (0.4%)
RemovedPureSymbol::removedMethod ( int param )
This method is from 'RemovedPureSymbol' class.
[+] class RemovedPureVirtualMethodFromEnd 1
|
Change |
Effect |
1 |
Pure virtual method removedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
RemovedPureVirtualMethodFromEnd::method |
RemovedPureVirtualMethodFromEnd::method |
12 |
__cxa_pure_virtual |
|
[+] affected symbols: 1 (0.4%)
RemovedPureVirtualMethodFromEnd::removedMethod ( int param )
This method is from 'RemovedPureVirtualMethodFromEnd' class.
[+] class RemovedVirtualFunction 1
|
Change |
Effect |
1 |
Virtual method removedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
RemovedVirtualFunction::removedMethod |
RemovedVirtualFunction::vMethod |
12 |
RemovedVirtualFunction::vMethod |
|
[+] affected symbols: 2 (0.9%)
RemovedVirtualFunction::removedMethod ( int param )
This method is from 'RemovedVirtualFunction' class.
RemovedVirtualFunction::vMethod ( int param )
This method is from 'RemovedVirtualFunction' class.
[+] class RemovedVirtualMethodFromEnd 1
|
Change |
Effect |
1 |
Virtual method removedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
RemovedVirtualMethodFromEnd::method |
RemovedVirtualMethodFromEnd::method |
12 |
RemovedVirtualMethodFromEnd::removedMethod |
|
[+] affected symbols: 1 (0.4%)
RemovedVirtualMethodFromEnd::removedMethod ( int param )
This method is from 'RemovedVirtualMethodFromEnd' class.
[+] class RemovedVirtualSymbol 1
|
Change |
Effect |
1 |
Virtual method removedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
RemovedVirtualSymbol::method |
RemovedVirtualSymbol::method |
12 |
RemovedVirtualSymbol::removedMethod |
|
[+] affected symbols: 1 (0.4%)
RemovedVirtualSymbol::removedMethod ( int param )
This method is from 'RemovedVirtualSymbol' class.
[+] class TypeSize 1
|
Change |
Effect |
1 |
Size of this class has been changed from 36 bytes to 80 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
TypeSize::method ( TypeSize param )
1st parameter 'param' is of type 'TypeSize'.
[+] class VirtualFunctionPosition 2
|
Change |
Effect |
1 |
The relative position of virtual method method1 ( int ) has been changed from 0 to 1. |
The layout of v-table has been changed. Call of this virtual method may result in crash or incorrect behavior of applications. |
2 |
The relative position of virtual method method2 ( int ) has been changed from 1 to 0. |
The layout of v-table has been changed. Call of this virtual method may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
VirtualFunctionPosition::method1 |
VirtualFunctionPosition::method2 |
12 |
VirtualFunctionPosition::method2 |
VirtualFunctionPosition::method1 |
[+] affected symbols: 2 (0.9%)
VirtualFunctionPosition::method1 ( int param )
This method is from 'VirtualFunctionPosition' class.
VirtualFunctionPosition::method2 ( int param )
This method is from 'VirtualFunctionPosition' class.
[+] class VirtualMethodPosition 2
|
Change |
Effect |
1 |
The relative position of virtual method method1 ( int ) has been changed from 0 to 1. |
The layout of v-table has been changed. Call of this virtual method may result in crash or incorrect behavior of applications. |
2 |
The relative position of virtual method method2 ( int ) has been changed from 1 to 0. |
The layout of v-table has been changed. Call of this virtual method may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
VirtualMethodPosition::method1 |
VirtualMethodPosition::method2 |
12 |
VirtualMethodPosition::method2 |
VirtualMethodPosition::method1 |
[+] affected symbols: 2 (0.9%)
VirtualMethodPosition::method1 ( int param )
This method is from 'VirtualMethodPosition' class.
VirtualMethodPosition::method2 ( int param )
This method is from 'VirtualMethodPosition' class.
[+] class VirtualTableSize 1
|
Change |
Effect |
1 |
Virtual method addedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 4 entries | Virtual Table (New) - 5 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
VirtualTableSize::method1 |
VirtualTableSize::method1 |
12 |
VirtualTableSize::method2 |
VirtualTableSize::method2 |
16 |
|
VirtualTableSize::addedMethod |
[+] affected symbols: 4 (1.8%)
VirtualTableSize::method1 ( int param )
This method is from 'VirtualTableSize' class.
VirtualTableSize::method2 ( int param )
This method is from 'VirtualTableSize' class.
VirtualTableSize_SubClass::method3 ( int param )
This method is from derived class 'VirtualTableSize_SubClass'.
VirtualTableSize_SubClass::method4 ( int param )
This method is from derived class 'VirtualTableSize_SubClass'.
[+] struct AnonTypedef 1
|
Change |
Effect |
1 |
Size of this type has been changed from 16 bytes to 1040 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
funcAnonTypedef ( struct AnonTypedef param )
1st parameter 'param' is of type 'struct AnonTypedef'.
[+] struct UnnamedTypeSize 1
|
Change |
Effect |
1 |
Size of this type has been changed from 16 bytes to 24 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
unnamedTypeSize ( struct UnnamedTypeSize param )
1st parameter 'param' is of type 'struct UnnamedTypeSize'.
[+] union UnionAddedField 1
|
Change |
Effect |
1 |
Size of this type has been changed from 8 bytes to 24 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
unionAddedField ( union UnionAddedField param )
1st parameter 'param' is of type 'union UnionAddedField'.
[+] union UnionRemovedField 1
|
Change |
Effect |
1 |
Size of this type has been changed from 24 bytes to 8 bytes. |
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. |
[+] affected symbols: 1 (0.4%)
unionRemovedField ( union UnionRemovedField param )
1st parameter 'param' is of type 'union UnionRemovedField'.
to the top
Problems with Symbols, High Severity 15
libsample.h,
libsample.so
namespace TestNS
[+] addedParameter ( int param ) 1
⇣
addedParameter ( int param, int added_param )
_ZN6TestNS14addedParameterEi
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS14addedParameterEi to _ZN6TestNS14addedParameterEii. This may cause undefined reference linker error in old client applications. |
[+] funcParameterBaseType ( int* param ) 1
⇣
funcParameterBaseType ( long long* param )
_ZN6TestNS21funcParameterBaseTypeEPi
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS21funcParameterBaseTypeEPi to _ZN6TestNS21funcParameterBaseTypeEPx. This may cause undefined reference linker error in old client applications. |
[+] funcParameterPointerLevel ( int* param ) 1
⇣
funcParameterPointerLevel ( int** param )
_ZN6TestNS25funcParameterPointerLevelEPi
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS25funcParameterPointerLevelEPi to _ZN6TestNS25funcParameterPointerLevelEPPi. This may cause undefined reference linker error in old client applications. |
[+] funcParameterPointerLevelAndSize ( long long param ) 1
⇣
funcParameterPointerLevelAndSize ( long long* param )
_ZN6TestNS32funcParameterPointerLevelAndSizeEx
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS32funcParameterPointerLevelAndSizeEx to _ZN6TestNS32funcParameterPointerLevelAndSizeEPx. This may cause undefined reference linker error in old client applications. |
[+] funcParameterType ( int param, int other_param ) 1
⇣
funcParameterType ( float param, int other_param )
_ZN6TestNS17funcParameterTypeEii
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS17funcParameterTypeEii to _ZN6TestNS17funcParameterTypeEfi. This may cause undefined reference linker error in old client applications. |
[+] funcParameterTypeAndSize ( int param, int other_param ) 1
⇣
funcParameterTypeAndSize ( long long param, int other_param )
_ZN6TestNS24funcParameterTypeAndSizeEii
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS24funcParameterTypeAndSizeEii to _ZN6TestNS24funcParameterTypeAndSizeExi. This may cause undefined reference linker error in old client applications. |
[+] MethodBecameConst::method ( int param ) 1
⇣
MethodBecameConst::method ( int param ) const
_ZN6TestNS17MethodBecameConst6methodEi
|
Change |
Effect |
1 |
Method became const. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS17MethodBecameConst6methodEi to _ZNK6TestNS17MethodBecameConst6methodEi. This may cause undefined reference linker error in old client applications. |
[+] MethodBecameConstVolatile::method ( int param ) 2
⇣
MethodBecameConstVolatile::method ( int param ) const volatile
_ZN6TestNS25MethodBecameConstVolatile6methodEi
|
Change |
Effect |
1 |
Method became const. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS25MethodBecameConstVolatile6methodEi to _ZNVK6TestNS25MethodBecameConstVolatile6methodEi. This may cause undefined reference linker error in old client applications. |
2 |
Method became volatile. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS25MethodBecameConstVolatile6methodEi to _ZNVK6TestNS25MethodBecameConstVolatile6methodEi. This may cause undefined reference linker error in old client applications. |
[+] MethodBecameNonConst::method ( int param ) const 1
⇣
MethodBecameNonConst::method ( int param )
_ZNK6TestNS20MethodBecameNonConst6methodEi
|
Change |
Effect |
1 |
Method became non-const. |
The name of the appropriate symbol for this function on binary level has been changed from _ZNK6TestNS20MethodBecameNonConst6methodEi to _ZN6TestNS20MethodBecameNonConst6methodEi. This may cause undefined reference linker error in old client applications. |
[+] MethodBecameNonStatic::becameNonStatic ( MethodBecameNonStatic param ) [static] 1
_ZN6TestNS21MethodBecameNonStatic15becameNonStaticES0_
|
Change |
Effect |
1 |
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. |
[+] MethodBecameStatic::becameStatic ( MethodBecameStatic param ) 1
_ZN6TestNS18MethodBecameStatic12becameStaticES0_
|
Change |
Effect |
1 |
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. |
[+] MethodBecameVolatile::method ( int param ) 1
⇣
MethodBecameVolatile::method ( int param ) volatile
_ZN6TestNS20MethodBecameVolatile6methodEi
|
Change |
Effect |
1 |
Method became volatile. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS20MethodBecameVolatile6methodEi to _ZNV6TestNS20MethodBecameVolatile6methodEi. This may cause undefined reference linker error in old client applications. |
[+] parameterTypedefChange ( float param ) 1
⇣
parameterTypedefChange ( int param )
_ZN6TestNS22parameterTypedefChangeEf
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS22parameterTypedefChangeEf to _ZN6TestNS22parameterTypedefChangeEi. This may cause undefined reference linker error in old client applications. |
[+] removedParameter ( int param, int removed_param ) 1
⇣
removedParameter ( int param )
_ZN6TestNS16removedParameterEii
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN6TestNS16removedParameterEii to _ZN6TestNS16removedParameterEi. This may cause undefined reference linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity 31
libsample.h
namespace TestNS
[+] class AddedBitfield 1
|
Change |
Effect |
1 |
Field added_bitfield2 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. |
[+] affected symbols: 1 (0.4%)
AddedBitfield::method ( AddedBitfield param )
1st parameter 'param' is of type 'AddedBitfield'.
[+] class AddedMiddleFieldAndSize 1
|
Change |
Effect |
1 |
Field added_middle_member 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. |
[+] affected symbols: 1 (0.4%)
AddedMiddleFieldAndSize::method ( AddedMiddleFieldAndSize param )
1st parameter 'param' is of type 'AddedMiddleFieldAndSize'.
[+] class AddedVirtualBase1 1
|
Change |
Effect |
1 |
Base class BecameVirtualBase became virtually inherited. |
Size, memory layout and v-table layout of this class and subclasses may change. |
[+] affected symbols: 2 (0.9%)
AddedVirtualBase1::method ( )
This method is from 'AddedVirtualBase1' class.
AddedVirtualBase1::__ct ( )
This constructor is from 'AddedVirtualBase1' class.
[+] class AddedVirtualBase2 1
|
Change |
Effect |
1 |
Base class BecameVirtualBase became virtually inherited. |
Size, memory layout and v-table layout of this class and subclasses may change. |
[+] affected symbols: 2 (0.9%)
AddedVirtualBase2::method ( )
This method is from 'AddedVirtualBase2' class.
AddedVirtualBase2::__ct ( )
This constructor is from 'AddedVirtualBase2' class.
[+] class AddedVirtualMethodAtEnd_DefaultConstructor 1
|
Change |
Effect |
1 |
Virtual method addedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
AddedVirtualMethodAtEnd_DefaultConstructor::method2 |
AddedVirtualMethodAtEnd_DefaultConstructor::method2 |
12 |
|
AddedVirtualMethodAtEnd_DefaultConstructor::addedMethod |
[+] affected symbols: 2 (0.9%)
AddedVirtualMethodAtEnd_DefaultConstructor::method1 ( int param )
This method is from 'AddedVirtualMethodAtEnd_DefaultConstructor' class.
AddedVirtualMethodAtEnd_DefaultConstructor::method2 ( int param )
This method is from 'AddedVirtualMethodAtEnd_DefaultConstructor' class.
[+] class BitfieldSize 1
|
Change |
Effect |
1 |
Size of field changed_bitfield has been changed from 1 bit to 7 bits. |
Previous accesses of applications and library functions to this field may be broken. |
[+] affected symbols: 1 (0.4%)
BitfieldSize::method ( BitfieldSize param )
1st parameter 'param' is of type 'BitfieldSize'.
[+] class DecreasedClassSize 1
|
Change |
Effect |
1 |
Size of this class has been decreased from 120 bytes to 40 bytes. |
Previous accesses of applications to public fields of this class or its subclasses may be incorrect. |
[+] affected symbols: 2 (0.9%)
DecreasedClassSize_SubClass::method ( )
This method is from derived class 'DecreasedClassSize_SubClass'.
DecreasedClassSize_SubClass::__ct ( )
This constructor is from derived class 'DecreasedClassSize_SubClass'.
[+] class DefaultConstructor 1
|
Change |
Effect |
1 |
Virtual method addedMethod ( int ) 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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
DefaultConstructor::method |
DefaultConstructor::method |
12 |
|
DefaultConstructor::addedMethod |
[+] affected symbols: 1 (0.4%)
DefaultConstructor::method ( int param )
This method is from 'DefaultConstructor' class.
[+] class FieldPointerLevelAndSize 2
|
Change |
Effect |
1 |
Type of field i has been changed from long long (8 bytes) to long long* (4 bytes). |
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. |
2 |
The pointer level of field i has been increased from 0 to 1. |
The library functions may try to access unallocated memory by the dereferencing of old field value and therefore cause a crash of applications. |
[+] affected symbols: 1 (0.4%)
FieldPointerLevelAndSize::method ( FieldPointerLevelAndSize param )
1st parameter 'param' is of type 'FieldPointerLevelAndSize'.
[+] class FieldTypeAndSize 1
|
Change |
Effect |
1 |
Type of field i has been changed from int (4 bytes) to long long (8 bytes). |
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. |
[+] affected symbols: 1 (0.4%)
FieldTypeAndSize::method ( FieldTypeAndSize param )
1st parameter 'param' is of type 'FieldTypeAndSize'.
[+] class MemberType 1
|
Change |
Effect |
1 |
Type of field i has been changed from int to float of different format. |
This field may be incorrectly initialized or accessed by applications. |
[+] affected symbols: 1 (0.4%)
MemberType::method ( MemberType param )
1st parameter 'param' is of type 'MemberType'.
[+] class MovedField 2
|
Change |
Effect |
1 |
The relative position of field i has been changed from 0 to 1. |
Applications will access incorrect memory when attempting to access this field. |
2 |
The relative position of field j has been changed from 1 to 0. |
Applications will access incorrect memory when attempting to access this field. |
[+] affected symbols: 1 (0.4%)
MovedField::method ( int param )
This method is from 'MovedField' class.
[+] class PureVirtualReplacement 1
|
Change |
Effect |
1 |
Pure virtual method methodNew ( int ) has been added to this class instead of methodOld ( int ). |
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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
__cxa_pure_virtual |
__cxa_pure_virtual |
[+] affected symbols: 2 (0.9%)
PureVirtualReplacement::otherMethod ( )
This method is from 'PureVirtualReplacement' class.
PureVirtualReplacement_Derived::methodOld ( int param )
This method is from derived class 'PureVirtualReplacement_Derived'.
[+] class RemovedAddedVirtualSymbol 1
|
Change |
Effect |
1 |
Virtual method addedMethod ( int ) has been added to this class instead of removedMethod ( int ). |
Applications will pass parameters of older replaced method to newly added virtual method. This may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
RemovedAddedVirtualSymbol::removedMethod |
RemovedAddedVirtualSymbol::addedMethod |
[+] affected symbols: 1 (0.4%)
RemovedAddedVirtualSymbol::removedMethod ( int param )
This method is from 'RemovedAddedVirtualSymbol' class.
[+] class RemovedBitfield 1
|
Change |
Effect |
1 |
Field removed_bitfield has been removed from this type. |
Applications will access incorrect memory when attempting to access this field. |
[+] affected symbols: 1 (0.4%)
RemovedBitfield::method ( RemovedBitfield param )
1st parameter 'param' is of type 'RemovedBitfield'.
[+] class RemovedFieldAndSize 2
|
Change |
Effect |
1 |
Field removed_member1 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. |
2 |
Field removed_member2 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. |
[+] affected symbols: 1 (0.4%)
RemovedFieldAndSize::method ( RemovedFieldAndSize param )
1st parameter 'param' is of type 'RemovedFieldAndSize'.
[+] class RemovedMiddleBitfield 1
|
Change |
Effect |
1 |
Field removed_middle_bitfield 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. |
[+] affected symbols: 1 (0.4%)
RemovedMiddleBitfield::method ( RemovedMiddleBitfield param )
1st parameter 'param' is of type 'RemovedMiddleBitfield'.
[+] class UnsafeVirtualOverride 1
|
Change |
Effect |
1 |
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. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 10 entries | Virtual Table (New) - 11 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~UnsafeVirtualOverride |
~UnsafeVirtualOverride |
12 |
~UnsafeVirtualOverride |
~UnsafeVirtualOverride |
16 |
UnsafeVirtualOverride::foo |
UnsafeVirtualOverride::foo |
20 |
(int (*)(...))-4 |
UnsafeVirtualOverride::bar |
24 |
(int (*)(...))(& typeinfo) |
(int (*)(...))-4 |
28 |
non-virtual thunk |
(int (*)(...))(& typeinfo) |
32 |
non-virtual thunk |
non-virtual thunk |
36 |
SecondaryBase::bar |
non-virtual thunk |
40 |
|
non-virtual thunk |
[+] affected symbols: 3 (1.3%)
UnsafeVirtualOverride::foo ( )
This method is from 'UnsafeVirtualOverride' class.
UnsafeVirtualOverride::__ct ( )
This constructor is from 'UnsafeVirtualOverride' class.
UnsafeVirtualOverride::~__dt ( )
This destructor is from 'UnsafeVirtualOverride' class.
[+] class VirtualReplacement 1
|
Change |
Effect |
1 |
Virtual method methodNew ( int ) has been added to this class instead of methodOld ( int ). |
Applications will pass parameters of older replaced method to newly added virtual method. This may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 3 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
VirtualReplacement::methodOld |
VirtualReplacement::methodNew |
[+] affected symbols: 1 (0.4%)
VirtualReplacement::methodOld ( int param )
This method is from 'VirtualReplacement' class.
[+] enum EnumMemberValue 2
|
Change |
Effect |
1 |
Value of member MEMBER_1 has been changed from 1 to 2. |
Applications may execute a wrong branch of code in the library and therefore change the behavior. |
2 |
Value of member MEMBER_2 has been changed from 2 to 1. |
Applications may execute a wrong branch of code in the library and therefore change the behavior. |
[+] affected symbols: 1 (0.4%)
enumMemberValueChange ( enum EnumMemberValue param )
1st parameter 'param' is of type 'enum EnumMemberValue'.
[+] struct FieldTypeFormat 1
|
Change |
Effect |
1 |
Type of field j has been changed from struct DType1 to struct DType2 of different format. |
This field may be incorrectly initialized or accessed by applications. |
[+] affected symbols: 1 (0.4%)
fieldTypeFormat ( struct FieldTypeFormat param )
1st parameter 'param' is of type 'struct FieldTypeFormat'.
[+] struct StructBecameOpaque 1
|
Change |
Effect |
1 |
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. |
[+] affected symbols: 1 (0.4%)
structBecameOpaque ( struct StructBecameOpaque* param )
1st parameter 'param' (pointer) has base type 'struct StructBecameOpaque'.
[+] struct TestRefChange 1
|
Change |
Effect |
1 |
Field c 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. |
[+] affected symbols: 1 (0.4%)
paramRefChange ( struct TestRefChange const& p1, int p2 )
1st parameter 'p1' (reference) has base type 'struct TestRefChange'.
[+] typedef TYPEDEF_TYPE_2 1
|
Change |
Effect |
1 |
Base type has been changed from float to int of different format. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 1 (0.4%)
fieldTypedefChange ( struct FieldTypedefChange param )
Field 'param.m' in 1st parameter 'param' is of type 'TYPEDEF_TYPE_2'.
[+] union UnionAddedField 1
|
Change |
Effect |
1 |
Field new_field 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. |
[+] affected symbols: 1 (0.4%)
unionAddedField ( union UnionAddedField param )
1st parameter 'param' is of type 'union UnionAddedField'.
[+] union UnionBecameOpaque 1
|
Change |
Effect |
1 |
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. |
[+] affected symbols: 1 (0.4%)
unionBecameOpaque ( union UnionBecameOpaque* param )
1st parameter 'param' (pointer) has base type 'union UnionBecameOpaque'.
[+] union UnionRemovedField 1
|
Change |
Effect |
1 |
Field removed_field 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. |
[+] affected symbols: 1 (0.4%)
unionRemovedField ( union UnionRemovedField param )
1st parameter 'param' is of type 'union UnionRemovedField'.
to the top
Problems with Symbols, Medium Severity 10
libsample.h
namespace TestNS
[+] globalDataBecameNonConst [data] 1
_ZN6TestNSL24globalDataBecameNonConstE
|
Change |
Effect |
1 |
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. |
libsample.h,
libsample.so
namespace TestNS
[+] funcReturnBaseType ( int param ) 1
_ZN6TestNS18funcReturnBaseTypeEi
|
Change |
Effect |
1 |
Base type of return value has been changed from int (4 bytes) to long long (8 bytes). |
Applications will obtain a different return value and execution may change. |
[+] funcReturnPointerLevelAndSize ( int param ) 1
_ZN6TestNS29funcReturnPointerLevelAndSizeEi
|
Change |
Effect |
1 |
Type of return value has been changed from long long (8 bytes) to long long* (4 bytes). |
Applications will obtain a different return value and execution may change. |
[+] funcReturnType ( int param ) 1
_ZN6TestNS14funcReturnTypeEi
|
Change |
Effect |
1 |
Type of return value has been changed from int to float. |
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. |
[+] funcReturnTypeAndSize ( int param ) 1
_ZN6TestNS21funcReturnTypeAndSizeEi
|
Change |
Effect |
1 |
Type of return value has been changed from int (4 bytes) to long long (8 bytes). |
Applications will obtain a different return value and execution may change. |
[+] funcReturnTypeBecameVoid ( int param ) 1
_ZN6TestNS24funcReturnTypeBecameVoidEi
|
Change |
Effect |
1 |
Type of return value has been changed from int (4 bytes) to void. |
Applications will not obtain a return value and execution may change. |
[+] globalDataBecameConst [data] 1
_ZN6TestNS21globalDataBecameConstE
|
Change |
Effect |
1 |
This global data became const. |
Any attempts of old applications to change this global data may result in crash. |
[+] GlobalDataBecameConst::Data [data] 1
_ZN6TestNS21GlobalDataBecameConst4DataE
|
Change |
Effect |
1 |
This global data became const. |
Any attempts of old applications to change this global data may result in crash. |
[+] GlobalDataBecameNonConst::data [data] 1
_ZN6TestNS24GlobalDataBecameNonConst4dataE
|
Change |
Effect |
1 |
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. |
[+] ParameterBecameRestrict::method ( int* param ) 1
⇣
ParameterBecameRestrict::method ( int*restrict param )
_ZN6TestNS23ParameterBecameRestrict6methodEPi
|
Change |
Effect |
1 |
Parameter param 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. |
to the top
Problems with Data Types, Low Severity 45
libsample.h
[+] class OutsideNS 1
|
Change |
Effect |
1 |
Field field2 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. |
[+] affected symbols: 1 (0.4%)
OutsideNS::someMethod ( )
This method is from 'OutsideNS' class.
libsample.h
namespace TestNS
[+] class AddedBitfield 1
|
Change |
Effect |
1 |
Field added_bitfield 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. |
[+] affected symbols: 1 (0.4%)
AddedBitfield::method ( AddedBitfield param )
1st parameter 'param' is of type 'AddedBitfield'.
[+] class AddedFieldAndSize 2
|
Change |
Effect |
1 |
Field added_member1 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. |
2 |
Field added_member2 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. |
[+] affected symbols: 1 (0.4%)
AddedFieldAndSize::method ( AddedFieldAndSize param )
1st parameter 'param' is of type 'AddedFieldAndSize'.
[+] class AddedMiddlePaddedField 1
|
Change |
Effect |
1 |
Field added_padded_field 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. |
[+] affected symbols: 1 (0.4%)
AddedMiddlePaddedField::method ( int param )
This method is from 'AddedMiddlePaddedField' class.
[+] class AddedTailField 1
|
Change |
Effect |
1 |
Field added_tail_field 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. |
[+] affected symbols: 1 (0.4%)
AddedTailField::method ( int param )
This method is from 'AddedTailField' class.
[+] class AllocableClassSize 1
|
Change |
Effect |
1 |
Type of field p has been changed from double[5] to double[15]. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 2 (0.9%)
AllocableClassSize::method ( )
This method is from 'AllocableClassSize' class.
AllocableClassSize::__ct ( )
This constructor is from 'AllocableClassSize' class.
[+] class BaseClassBecameVirtuallyInherited 1
|
Change |
Effect |
1 |
Size of this type has been changed from 80 bytes to 48 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 1 (0.4%)
BaseClassBecameVirtuallyInherited::__ct ( )
This constructor is from 'BaseClassBecameVirtuallyInherited' class.
[+] class ChangedBaseClass 2
|
Change |
Effect |
1 |
Base class AddedBaseClass has been added. |
Possible incorrect access of applications to the memory occupied by the base classes. |
2 |
Base class RemovedBaseClass has been removed. |
Possible incorrect access of applications to the memory occupied by the base classes. |
[+] affected symbols: 1 (0.4%)
ChangedBaseClass::__ct ( )
This constructor is from 'ChangedBaseClass' class.
[+] class CopyingClassSize 1
|
Change |
Effect |
1 |
Type of field p has been changed from int[5] to int[15]. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
CopyingClassSize::method ( )
This method is from 'CopyingClassSize' class.
[+] class DecreasedClassSize 2
|
Change |
Effect |
1 |
Size of this type has been changed from 120 bytes to 40 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
2 |
Type of field p has been changed from double[15] to double[5]. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 2 (0.9%)
DecreasedClassSize::method ( )
This method is from 'DecreasedClassSize' class.
DecreasedClassSize::__ct ( )
This constructor is from 'DecreasedClassSize' class.
[+] class DecreasedClassSize_SubClass 1
|
Change |
Effect |
1 |
Size of this type has been changed from 124 bytes to 44 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 2 (0.9%)
DecreasedClassSize_SubClass::method ( )
This method is from 'DecreasedClassSize_SubClass' class.
DecreasedClassSize_SubClass::__ct ( )
This constructor is from 'DecreasedClassSize_SubClass' class.
[+] class FieldBaseType 1
|
Change |
Effect |
1 |
Base type of field i has been changed from int (4 bytes) to long long (8 bytes). |
Possible access of applications to incorrect memory through the pointer. |
[+] affected symbols: 1 (0.4%)
FieldBaseType::method ( FieldBaseType param )
1st parameter 'param' is of type 'FieldBaseType'.
[+] class FieldBecameConst 2
|
Change |
Effect |
1 |
Field f became const. |
The value of this field is expected to be const in new library version, but can be modified by old applications. |
2 |
Type of field f has been changed from int* to int*const. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
FieldBecameConst::method ( )
This method is from 'FieldBecameConst' class.
[+] class FieldBecameConstTypedef 2
|
Change |
Effect |
1 |
Field f became const. |
The value of this field is expected to be const in new library version, but can be modified by old applications. |
2 |
Type of field f has been changed from int* to CONST_INT_PTR. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
FieldBecameConstTypedef::method ( CONST_INT_PTR p )
This method is from 'FieldBecameConstTypedef' class.
[+] class FieldBecameMutable 1
|
Change |
Effect |
1 |
Field f became mutable. |
The value of this field can begin to change in ways outside the control of old client applications. |
[+] affected symbols: 1 (0.4%)
FieldBecameMutable::method ( int param )
This method is from 'FieldBecameMutable' class.
[+] class FieldBecameNonMutable 1
|
Change |
Effect |
1 |
Field f 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. |
[+] affected symbols: 1 (0.4%)
FieldBecameNonMutable::method ( int param )
This method is from 'FieldBecameNonMutable' class.
[+] class FieldBecameNonVolatile 1
|
Change |
Effect |
1 |
Type of field f has been changed from int volatile to int. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
FieldBecameNonVolatile::method ( int param )
This method is from 'FieldBecameNonVolatile' class.
[+] class FieldBecamePrivate 1
|
Change |
Effect |
1 |
Field f became private. |
Old applications will continue using this field, but it may require a different initialization of class object. |
[+] affected symbols: 1 (0.4%)
FieldBecamePrivate::method ( )
This method is from 'FieldBecamePrivate' class.
[+] class FieldBecameProtected 1
|
Change |
Effect |
1 |
Field f became protected. |
Old applications will continue using this field, but it may require a different initialization of class object. |
[+] affected symbols: 1 (0.4%)
FieldBecameProtected::method ( )
This method is from 'FieldBecameProtected' class.
[+] class FieldBecameVolatile 2
|
Change |
Effect |
1 |
Field f became volatile. |
The value of this field can begin to change in ways outside the control of old client applications. |
2 |
Type of field f has been changed from int to int volatile. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
FieldBecameVolatile::method ( int param )
This method is from 'FieldBecameVolatile' class.
[+] class FieldPointerLevel 2
|
Change |
Effect |
1 |
The pointer level of field i has been decreased from 2 to 1. |
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. |
2 |
Type of field i has been changed from int** to int*. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
FieldPointerLevel::method ( FieldPointerLevel param )
1st parameter 'param' is of type 'FieldPointerLevel'.
[+] class FieldRemovedConst 1
|
Change |
Effect |
1 |
Type of field f has been changed from int*const*const to int**const. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
FieldRemovedConst::method ( )
This method is from 'FieldRemovedConst' class.
[+] class ObjectAddedMember 2
|
Change |
Effect |
1 |
Field added_member1 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. |
2 |
Field added_member2 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. |
[+] affected symbols: 1 (0.4%)
ObjectAddedMember::method ( int param )
This method is from 'ObjectAddedMember' class.
[+] class OverriddenVirtualMethod 1
|
Change |
Effect |
1 |
Virtual method OverriddenVirtualMethod_Base::method2 ( int ) has been overridden by OverriddenVirtualMethod::method2 ( int ). |
Method OverriddenVirtualMethod::method2 ( int ) will be called instead of OverriddenVirtualMethod_Base::method2 ( int ) by old applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 5 entries | Virtual Table (New) - 5 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
OverriddenVirtualMethod_Base::method1 |
OverriddenVirtualMethod_Base::method1 |
12 |
OverriddenVirtualMethod_Base::method2 |
OverriddenVirtualMethod::method2 |
16 |
OverriddenVirtualMethod::method3 |
OverriddenVirtualMethod::method3 |
[+] affected symbols: 1 (0.4%)
OverriddenVirtualMethod_Base::method2 ( int param )
The method '_ZN6TestNS23OverriddenVirtualMethod7method2Ei' will be called instead of this method.
[+] class OverriddenVirtualMethodB 1
|
Change |
Effect |
1 |
Virtual method OverriddenVirtualMethodB::method2 ( int ) has been overridden by OverriddenVirtualMethod_Base::method2 ( int ). |
Method OverriddenVirtualMethod_Base::method2 ( int ) will be called instead of OverriddenVirtualMethodB::method2 ( int ) by old applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 5 entries | Virtual Table (New) - 5 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
OverriddenVirtualMethod_Base::method1 |
OverriddenVirtualMethod_Base::method1 |
12 |
OverriddenVirtualMethodB::method2 |
OverriddenVirtualMethod_Base::method2 |
16 |
OverriddenVirtualMethodB::method3 |
OverriddenVirtualMethodB::method3 |
[+] affected symbols: 1 (0.4%)
OverriddenVirtualMethodB::method2 ( int param )
The method '_ZN6TestNS28OverriddenVirtualMethod_Base7method2Ei' will be called instead of this method.
[+] class RenamedField 1
|
Change |
Effect |
1 |
Field i has been renamed to renamed_member. |
Renaming of a field in data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
RenamedField::method ( RenamedField param )
1st parameter 'param' is of type 'RenamedField'.
[+] class TypeSize 2
|
Change |
Effect |
1 |
Field added_member 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. |
2 |
Type of field i has been changed from int[5] to int[15]. |
Replacement of the field data type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
TypeSize::method ( TypeSize param )
1st parameter 'param' is of type 'TypeSize'.
[+] class UnsafeVirtualOverride 1
|
Change |
Effect |
1 |
Virtual method SecondaryBase::bar ( ) has been overridden by UnsafeVirtualOverride::bar ( ). |
Method UnsafeVirtualOverride::bar ( ) will be called instead of SecondaryBase::bar ( ) by old applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 10 entries | Virtual Table (New) - 11 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~UnsafeVirtualOverride |
~UnsafeVirtualOverride |
12 |
~UnsafeVirtualOverride |
~UnsafeVirtualOverride |
16 |
UnsafeVirtualOverride::foo |
UnsafeVirtualOverride::foo |
20 |
(int (*)(...))-4 |
UnsafeVirtualOverride::bar |
24 |
(int (*)(...))(& typeinfo) |
(int (*)(...))-4 |
28 |
non-virtual thunk |
(int (*)(...))(& typeinfo) |
32 |
non-virtual thunk |
non-virtual thunk |
36 |
SecondaryBase::bar |
non-virtual thunk |
40 |
|
non-virtual thunk |
[+] affected symbols: 1 (0.4%)
SecondaryBase::bar ( )
The method '_ZN6TestNS21UnsafeVirtualOverride3barEv' will be called instead of this method.
[+] enum EnumMemberRename 2
|
Change |
Effect |
1 |
Name of member with value 1 has been changed from BRANCH_1 to BRANCH_FIRST. |
Applications may execute a wrong branch of code in the library and therefore change the behavior. |
2 |
Name of member with value 2 has been changed from BRANCH_2 to BRANCH_SECOND. |
Applications may execute a wrong branch of code in the library and therefore change the behavior. |
[+] affected symbols: 1 (0.4%)
enumMemberRename ( enum EnumMemberRename param )
1st parameter 'param' is of type 'enum EnumMemberRename'.
[+] struct DType 2
|
Change |
Effect |
1 |
Field i became private. |
Old applications will continue using this field, but it may require a different initialization of class object. |
2 |
Field j became private. |
Old applications will continue using this field, but it may require a different initialization of class object. |
[+] affected symbols: 1 (0.4%)
parameterTypeFormat_Safe ( struct DType param )
1st parameter 'param' is of type 'struct DType'.
[+] struct FieldTypeFormat_FuncPtr 1
|
Change |
Effect |
1 |
Base type of field j has been changed from void(*)(int) to void(*)(int, int). |
Replacement of field base type may indicate a change in the semantic meaning of the field. |
[+] affected symbols: 1 (0.4%)
fieldTypeFormat_FuncPtr ( struct FieldTypeFormat_FuncPtr param )
1st parameter 'param' is of type 'struct FieldTypeFormat_FuncPtr'.
[+] struct TestRefChange 1
|
Change |
Effect |
1 |
Size of this type has been changed from 12 bytes to 8 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 1 (0.4%)
paramRefChange ( struct TestRefChange const& p1, int p2 )
1st parameter 'p1' (reference) has base type 'struct TestRefChange'.
[+] typedef TestFieldPtr::Field 1
|
Change |
Effect |
1 |
Base type has been changed from void*(TestFieldPtr::*) to int(TestFieldPtr::*). |
Replacement of the base data type may indicate a change in its semantic meaning. |
[+] affected symbols: 2 (0.9%)
TestFieldPtr::method ( void* p1 )
Field 'this._field' in the object of this method is of type 'TestFieldPtr::Field'.
TestFieldPtr::__ct ( )
Field 'this._field' in the object of this method is of type 'TestFieldPtr::Field'.
[+] typedef TestMethodPtr::Method 1
|
Change |
Effect |
1 |
Base type has been changed from void(TestMethodPtr::*)(int*) to void(TestMethodPtr::*)(int*, void*). |
Replacement of the base data type may indicate a change in its semantic meaning. |
[+] affected symbols: 2 (0.9%)
TestMethodPtr::method ( )
Field 'this._method' in the object of this method is of type 'TestMethodPtr::Method'.
TestMethodPtr::__ct ( )
Field 'this._method' in the object of this method is of type 'TestMethodPtr::Method'.
to the top
Problems with Symbols, Low Severity 24
libsample.h
namespace TestNS
[+] globalDataBecameNonConst [data] 1
_ZN6TestNSL24globalDataBecameNonConstE
|
Change |
Effect |
1 |
Type of this global data has been changed from int const to int. |
Replacement of data type may indicate a change in semantic meaning. |
[+] GlobalDataValue::Char [data] 1
_ZN6TestNS15GlobalDataValue4CharE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 'o' to 'N'. |
Applications will use an old value of this data instead of the new one. This may cause incorrect behavior of applications. |
[+] GlobalDataValue::Integer [data] 1
_ZN6TestNS15GlobalDataValue7IntegerE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 10 to 15. |
Applications will use an old value of this data instead of the new one. This may cause incorrect behavior of applications. |
[+] globalDataValue_Char [data] 1
_ZN6TestNSL20globalDataValue_CharE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 'o' to 'N'. |
Applications will use an old value of this data instead of the new one. This may cause incorrect behavior of applications. |
[+] globalDataValue_Integer [data] 1
_ZN6TestNSL23globalDataValue_IntegerE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 10 to 15. |
Applications will use an old value of this data instead of the new one. This may cause incorrect behavior of applications. |
libsample.h,
libsample.so
namespace TestNS
[+] funcReturnPointerLevel ( int param ) 2
_ZN6TestNS22funcReturnPointerLevelEi
|
Change |
Effect |
1 |
The pointer level of return value has been increased from 1 to 2. |
Applications will treat the return value as the lower-dimension array and will not read all elements. This may change the behavior of applications. |
2 |
Type of return value has been changed from int* to int**. |
Replacement of return type may indicate a change in its semantic meaning. |
[+] funcReturnPointerLevelAndSize ( int param ) 1
_ZN6TestNS29funcReturnPointerLevelAndSizeEi
|
Change |
Effect |
1 |
The pointer level of return value has been increased from 0 to 1. |
Applications will treat the return value as the lower-dimension array and will not read all elements. This may change the behavior of applications. |
[+] globalDataBecameConst [data] 1
_ZN6TestNS21globalDataBecameConstE
|
Change |
Effect |
1 |
Type of this global data has been changed from int to int const. |
Replacement of data type may indicate a change in semantic meaning. |
[+] GlobalDataBecameConst::Data [data] 1
_ZN6TestNS21GlobalDataBecameConst4DataE
|
Change |
Effect |
1 |
Type of this global data has been changed from int to int const. |
Replacement of data type may indicate a change in semantic meaning. |
[+] GlobalDataBecameNonConst::data [data] 1
_ZN6TestNS24GlobalDataBecameNonConst4dataE
|
Change |
Effect |
1 |
Type of this global data has been changed from int const to int. |
Replacement of data type may indicate a change in semantic meaning. |
[+] GlobalDataBecamePrivate::data [data] 1
_ZN6TestNS23GlobalDataBecamePrivate4dataE
|
Change |
Effect |
1 |
This global data became private. |
Old applications will continue using this global data, but it may require a different initialization of the environment. |
[+] MethodBecamePrivate::method ( ) 1
_ZN6TestNS19MethodBecamePrivate6methodEv
|
Change |
Effect |
1 |
This method became private. |
Old applications will continue using this method, but it may require a different initialization of the environment and parameters. |
[+] MethodBecameProtected::method ( ) 1
_ZN6TestNS21MethodBecameProtected6methodEv
|
Change |
Effect |
1 |
This method became protected. |
Old applications will continue using this method, but it may require a different initialization of the environment and parameters. |
[+] OverriddenVirtualMethod::method3 ( int param ) 1
_ZN6TestNS23OverriddenVirtualMethod7method3Ei
|
Change |
Effect |
1 |
This method became private. |
Old applications will continue using this method, but it may require a different initialization of the environment and parameters. |
[+] OverriddenVirtualMethod::__ct [C1] ( ) 1
_ZN6TestNS23OverriddenVirtualMethodC1Ev
|
Change |
Effect |
1 |
This method became private. |
Old applications will continue using this method, but it may require a different initialization of the environment and parameters. |
[+] OverriddenVirtualMethod::__ct [C2] ( ) 1
_ZN6TestNS23OverriddenVirtualMethodC2Ev
|
Change |
Effect |
1 |
This method became private. |
Old applications will continue using this method, but it may require a different initialization of the environment and parameters. |
[+] paramDefaultValueChanged_Bool ( bool param ) 1
_ZN6TestNS29paramDefaultValueChanged_BoolEb
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from -1 to false. |
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. |
[+] paramDefaultValueChanged_Char ( char param ) 1
_ZN6TestNS29paramDefaultValueChanged_CharEc
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from 'A' to 'B'. |
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. |
[+] paramDefaultValueChanged_Integer ( int param ) 1
_ZN6TestNS32paramDefaultValueChanged_IntegerEi
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from 61455 to 61451. |
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. |
[+] paramDefaultValueChanged_String ( char const* param ) 1
_ZN6TestNS31paramDefaultValueChanged_StringEPKc
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from " str 1 " to " str 2 ". |
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. |
[+] ParameterBecameNonRestrict::method ( int*restrict param ) 1
⇣
ParameterBecameNonRestrict::method ( int* param )
_ZN6TestNS26ParameterBecameNonRestrict6methodEPi
|
Change |
Effect |
1 |
Type of 1st parameter param has been changed from int*restrict to int*. |
Replacement of parameter data type may indicate a change in its semantic meaning. |
[+] ParameterBecameRestrict::method ( int* param ) 1
⇣
ParameterBecameRestrict::method ( int*restrict param )
_ZN6TestNS23ParameterBecameRestrict6methodEPi
|
Change |
Effect |
1 |
Type of 1st parameter param has been changed from int* to int*restrict. |
Replacement of parameter data type may indicate a change in its semantic meaning. |
[+] parameterDefaultValueRemoved ( int param ) 1
_ZN6TestNS28parameterDefaultValueRemovedEi
|
Change |
Effect |
1 |
The default argument 15 of 1st parameter param 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. |
to the top
Problems with Constants, Low Severity 1
libsample.h
[+] PUBLIC_CONSTANT
|
Change |
Effect |
1 |
The value of constant PUBLIC_CONSTANT 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. |
to the top
Other Changes in Data Types 4
libsample.h
namespace TestNS
[+] class AddedVirtualMethodAtEnd 1
|
Change |
Effect |
1 |
Virtual method addedMethod ( int ) has been added to this class. |
No effect. You can add virtual functions at end of leaf classes with exported constructors. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 3 entries | Virtual Table (New) - 4 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
AddedVirtualMethodAtEnd::method2 |
AddedVirtualMethodAtEnd::method2 |
12 |
|
AddedVirtualMethodAtEnd::addedMethod |
[+] affected symbols: 3 (1.3%)
AddedVirtualMethodAtEnd::method1 ( int param )
This method is from 'AddedVirtualMethodAtEnd' class.
AddedVirtualMethodAtEnd::method2 ( int param )
This method is from 'AddedVirtualMethodAtEnd' class.
AddedVirtualMethodAtEnd::__ct ( )
This constructor is from 'AddedVirtualMethodAtEnd' class.
[+] class FieldBecameNonVolatile 1
|
Change |
Effect |
1 |
Field f became non-volatile. |
No effect. |
[+] affected symbols: 1 (0.4%)
FieldBecameNonVolatile::method ( int param )
This method is from 'FieldBecameNonVolatile' class.
[+] class FieldRemovedConst 1
|
Change |
Effect |
1 |
Removed const qualifier from field f. |
No effect. |
[+] affected symbols: 1 (0.4%)
FieldRemovedConst::method ( )
This method is from 'FieldRemovedConst' class.
[+] enum AddedEnumMember 1
|
Change |
Effect |
1 |
The member NewMember with value 1 has been added. |
No effect. |
[+] affected symbols: 1 (0.4%)
addedEnumMember ( enum AddedEnumMember param )
1st parameter 'param' is of type 'enum AddedEnumMember'.
to the top
Other Changes in Symbols 3
libsample.h,
libsample.so
namespace TestNS
[+] MethodBecamePublic::method ( ) 1
_ZN6TestNS18MethodBecamePublic6methodEv
|
Change |
Effect |
1 |
This method became public. |
No effect. |
[+] ParameterBecameNonRestrict::method ( int*restrict param ) 1
⇣
ParameterBecameNonRestrict::method ( int* param )
_ZN6TestNS26ParameterBecameNonRestrict6methodEPi
|
Change |
Effect |
1 |
Parameter param became non-restrict. |
No effect. |
[+] parameterDefaultValueAdded ( int param ) 1
_ZN6TestNS26parameterDefaultValueAddedEi
|
Change |
Effect |
1 |
The default argument 15 of 1st parameter param has been added. |
No effect. |
to the top
Header Files 1
libsample.h
to the top
Libraries 1
libsample.so
to the top
Test Info
Library Name | libsample_cpp |
Version #1 | 1.0 |
Version #2 | 2.0 |
Arch | x86 |
Subject | Source Compatibility |
Test Results
Total Header Files | 1 |
Total Libraries | 1 |
Total Symbols / Types | 233 / 129 |
Compatibility |
77.7% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 33 |
Removed Symbols | High | 26 |
Problems with Data Types | High | 16 |
Medium | 12 |
Low | 32 |
Problems with Symbols | High | 6 |
Medium | 16 |
Low | 10 |
Problems with Constants | Low | 2 |
Other Changes in Data Types | - | 10 |
Other Changes in Symbols | - | 19 |
Other Changes in Constants | - | 1 |
Added Symbols 33
libsample.h
namespace TestNS
AddedBaseClass::__ct [C1] ( )
_ZN6TestNS14AddedBaseClassC1Ev
AddedBaseClass::__ct [C2] ( )
_ZN6TestNS14AddedBaseClassC2Ev
AddedBaseClass::method ( )
_ZN6TestNS14AddedBaseClass6methodEv
AddedFirstVirtualMethod::addedMethod ( int param )
_ZN6TestNS23AddedFirstVirtualMethod11addedMethodEi
addedFunc ( FUNCPTR_TYPE*const** f )
_ZN6TestNS9addedFuncEPPKPPFiiiE
addedFunc2 ( void*** param )
_ZN6TestNS10addedFunc2EPPPv
addedFunc3 ( struct DStruct* p )
_ZN6TestNS10addedFunc3EPNS_7DStructE
AddedInterface::added_func ( AddedInterface param )
_ZN6TestNS14AddedInterface10added_funcES0_
addedParameter ( int param, int added_param )
_ZN6TestNS14addedParameterEii
AddedVariable::i1 [data]
_ZN6TestNS13AddedVariable2i1E
AddedVariable::i2 [data]
_ZN6TestNS13AddedVariable2i2E
AddedVirtualBase1::__ct [C1] ( )
_ZN6TestNS17AddedVirtualBase1C1Ei
AddedVirtualBase2::__ct [C1] ( )
_ZN6TestNS17AddedVirtualBase2C1Ei
AddedVirtualMethod::addedMethod ( int param )
_ZN6TestNS18AddedVirtualMethod11addedMethodEi
AddedVirtualMethodAtEnd::addedMethod ( int param )
_ZN6TestNS23AddedVirtualMethodAtEnd11addedMethodEi
AddedVirtualMethodAtEnd_DefaultConstructor::addedMethod ( int param )
_ZN6TestNS42AddedVirtualMethodAtEnd_DefaultConstructor11addedMethodEi
BaseClassBecameVirtuallyInherited::__ct [C1] ( )
_ZN6TestNS33BaseClassBecameVirtuallyInheritedC1Ei
DefaultConstructor::addedMethod ( int param )
_ZN6TestNS18DefaultConstructor11addedMethodEi
funcParameterBaseType ( long long* param )
_ZN6TestNS21funcParameterBaseTypeEPx
funcParameterPointerLevel ( int** param )
_ZN6TestNS25funcParameterPointerLevelEPPi
funcParameterPointerLevelAndSize ( long long* param )
_ZN6TestNS32funcParameterPointerLevelAndSizeEPx
funcParameterType ( float param, int other_param )
_ZN6TestNS17funcParameterTypeEfi
funcParameterTypeAndSize ( long long param, int other_param )
_ZN6TestNS24funcParameterTypeAndSizeExi
OpaqueStruct::__ct [C1] ( )
_ZN6TestNS12OpaqueStructC1Ev
OpaqueStruct::__ct [C2] ( )
_ZN6TestNS12OpaqueStructC2Ev
parameterTypedefChange ( int param )
_ZN6TestNS22parameterTypedefChangeEi
PureVirtualReplacement_Derived::methodNew ( int param )
_ZN6TestNS30PureVirtualReplacement_Derived9methodNewEi
RemovedAddedVirtualSymbol::addedMethod ( int param )
_ZN6TestNS25RemovedAddedVirtualSymbol11addedMethodEi
removedParameter ( int param )
_ZN6TestNS16removedParameterEi
renamedFunc_NewName ( int param )
_ZN6TestNS19renamedFunc_NewNameEi
UnsafeVirtualOverride::bar ( )
_ZN6TestNS21UnsafeVirtualOverride3barEv
VirtualReplacement::methodNew ( int param )
_ZN6TestNS18VirtualReplacement9methodNewEi
VirtualTableSize::addedMethod ( int param )
_ZN6TestNS16VirtualTableSize11addedMethodEi
to the top
Removed Symbols 26
libsample.h
namespace TestNS
removedTemplateSpec<char> ( char p1 )
_ZN6TestNS19removedTemplateSpecIcEEiT_
addedParameter ( int param )
_ZN6TestNS14addedParameterEi
funcParameterBaseType ( int* param )
_ZN6TestNS21funcParameterBaseTypeEPi
funcParameterPointerLevel ( int* param )
_ZN6TestNS25funcParameterPointerLevelEPi
funcParameterPointerLevelAndSize ( long long param )
_ZN6TestNS32funcParameterPointerLevelAndSizeEx
funcParameterType ( int param, int other_param )
_ZN6TestNS17funcParameterTypeEii
funcParameterTypeAndSize ( int param, int other_param )
_ZN6TestNS24funcParameterTypeAndSizeEii
OverriddenVirtualMethodB::method2 ( int param )
_ZN6TestNS24OverriddenVirtualMethodB7method2Ei
parameterTypedefChange ( float param )
_ZN6TestNS22parameterTypedefChangeEf
PureVirtualReplacement_Derived::methodOld ( int param )
_ZN6TestNS30PureVirtualReplacement_Derived9methodOldEi
RemovedAddedVirtualSymbol::removedMethod ( int param )
_ZN6TestNS25RemovedAddedVirtualSymbol13removedMethodEi
RemovedBaseClass::method ( )
_ZN6TestNS16RemovedBaseClass6methodEv
RemovedBaseClass::__ct [C1] ( )
_ZN6TestNS16RemovedBaseClassC1Ev
RemovedBaseClass::__ct [C2] ( )
_ZN6TestNS16RemovedBaseClassC2Ev
RemovedConstOverload::removed ( ) const
_ZNK6TestNS20RemovedConstOverload7removedEv
removedFunc2 ( void*** param )
_ZN6TestNS12removedFunc2EPPPv
RemovedInlineVirtualFunction::removedMethod ( int param )
_ZN6TestNS28RemovedInlineVirtualFunction13removedMethodEi
RemovedInterface::removed_func ( RemovedInterface param )
_ZN6TestNS16RemovedInterface12removed_funcES0_
RemovedLastVirtualSymbol::removedMethod ( int param )
_ZN6TestNS24RemovedLastVirtualSymbol13removedMethodEi
removedParameter ( int param, int removed_param )
_ZN6TestNS16removedParameterEii
RemovedVirtualDestructor::~__dt [D0] ( )
_ZN6TestNS24RemovedVirtualDestructorD0Ev
RemovedVirtualDestructor::~__dt [D1] ( )
_ZN6TestNS24RemovedVirtualDestructorD1Ev
RemovedVirtualDestructor::~__dt [D2] ( )
_ZN6TestNS24RemovedVirtualDestructorD2Ev
RemovedVirtualSymbol::removedMethod ( int param )
_ZN6TestNS20RemovedVirtualSymbol13removedMethodEi
TestRemovedTemplate<7u, char>::method ( int p1 )
_ZN6TestNS19TestRemovedTemplateILj7EcE6methodEi
VirtualReplacement::methodOld ( int param )
_ZN6TestNS18VirtualReplacement9methodOldEi
to the top
Problems with Data Types, High Severity 16
libsample.h
namespace TestNS
[+] class AddedPureVirtualMethod 1
|
Change |
Effect |
1 |
Pure virtual method addedMethod ( int ) has been added to this class. |
Recompilation of a client program may be broken with the error message: cannot allocate an object of abstract type AddedPureVirtualMethod because the following virtual functions are pure within AddedPureVirtualMethod: virtual addedMethod ( int ). |
[+] affected symbols: 2 (0.9%)
AddedPureVirtualMethod::otherMethod ( int param )
This method is from 'AddedPureVirtualMethod' class.
AddedPureVirtualMethod::method ( int param )
This method is from 'AddedPureVirtualMethod' class.
[+] class AddedVariable 2
|
Change |
Effect |
1 |
Field i1 has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'AddedVariable' has no member named 'i1'. |
2 |
Field i2 has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'AddedVariable' has no member named 'i2'. |
[+] affected symbols: 1 (0.4%)
AddedVariable::method ( AddedVariable param )
1st parameter 'param' is of type 'AddedVariable'.
[+] class Callback 1
|
Change |
Effect |
1 |
Pure virtual method added_callback ( int, int ) has been added to this class. |
Recompilation of a client program may be broken with the error message: cannot allocate an object of abstract type Callback because the following virtual functions are pure within Callback: virtual added_callback ( int, int ). |
[+] affected symbols: 2 (0.9%)
Callback::callback1 ( int x, int y )
This method is from 'Callback' class.
Callback::callback2 ( int x, int y )
This method is from 'Callback' class.
[+] class RemovedBitfield 1
|
Change |
Effect |
1 |
Field removed_bitfield has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'RemovedBitfield' has no member named 'removed_bitfield'. |
[+] affected symbols: 1 (0.4%)
RemovedBitfield::method ( RemovedBitfield param )
1st parameter 'param' is of type 'RemovedBitfield'.
[+] class RemovedFieldAndSize 2
|
Change |
Effect |
1 |
Field removed_member1 has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'RemovedFieldAndSize' has no member named 'removed_member1'. |
2 |
Field removed_member2 has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'RemovedFieldAndSize' has no member named 'removed_member2'. |
[+] affected symbols: 1 (0.4%)
RemovedFieldAndSize::method ( RemovedFieldAndSize param )
1st parameter 'param' is of type 'RemovedFieldAndSize'.
[+] class RemovedMiddleBitfield 1
|
Change |
Effect |
1 |
Field removed_middle_bitfield has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'RemovedMiddleBitfield' has no member named 'removed_middle_bitfield'. |
[+] affected symbols: 1 (0.4%)
RemovedMiddleBitfield::method ( RemovedMiddleBitfield param )
1st parameter 'param' is of type 'RemovedMiddleBitfield'.
[+] class RemovedMiddleFieldAndSize 1
|
Change |
Effect |
1 |
Field removed_middle_member has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'RemovedMiddleFieldAndSize' has no member named 'removed_middle_member'. |
[+] affected symbols: 1 (0.4%)
RemovedMiddleFieldAndSize::method ( RemovedMiddleFieldAndSize param )
1st parameter 'param' is of type 'RemovedMiddleFieldAndSize'.
[+] class RemovedPureSymbol 1
|
Change |
Effect |
1 |
Pure virtual method removedMethod ( int ) has been removed from this class. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
RemovedPureSymbol::method ( int param )
This method is from 'RemovedPureSymbol' class.
[+] class RemovedPureVirtualMethodFromEnd 1
|
Change |
Effect |
1 |
Pure virtual method removedMethod ( int ) has been removed from this class. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
RemovedPureVirtualMethodFromEnd::method ( int param )
This method is from 'RemovedPureVirtualMethodFromEnd' class.
[+] class RenamedField 1
|
Change |
Effect |
1 |
Field i has been renamed to renamed_member. |
Recompilation of a client program may be broken with the error message: RenamedField has no member named i. |
[+] affected symbols: 1 (0.4%)
RenamedField::method ( RenamedField param )
1st parameter 'param' is of type 'RenamedField'.
[+] enum EnumMemberRename 2
|
Change |
Effect |
1 |
Name of member with value 1 has been changed from BRANCH_1 to BRANCH_FIRST. |
Recompilation of a client program may be broken with the error message: 'BRANCH_1' was not declared in this scope. |
2 |
Name of member with value 2 has been changed from BRANCH_2 to BRANCH_SECOND. |
Recompilation of a client program may be broken with the error message: 'BRANCH_2' was not declared in this scope. |
[+] affected symbols: 1 (0.4%)
enumMemberRename ( enum EnumMemberRename param )
1st parameter 'param' is of type 'enum EnumMemberRename'.
[+] struct TestRefChange 1
|
Change |
Effect |
1 |
Field c has been removed from this type. |
Recompilation of a client program may be broken with the error message: 'struct TestRefChange' has no member named 'c'. |
[+] affected symbols: 1 (0.4%)
paramRefChange ( struct TestRefChange const& p1, int p2 )
1st parameter 'p1' (reference) has base type 'struct TestRefChange'.
[+] union UnionRemovedField 1
|
Change |
Effect |
1 |
Field removed_field has been removed from this union. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
unionRemovedField ( union UnionRemovedField param )
1st parameter 'param' is of type 'union UnionRemovedField'.
to the top
Problems with Symbols, High Severity 6
libsample.h
namespace TestNS
[+] GlobalDataBecamePrivate::data [data] 1
_ZN6TestNS23GlobalDataBecamePrivate4dataE
|
Change |
Effect |
1 |
This global data became private. |
Recompilation of a client program may be broken with the error message: 'data [data]' is private. |
[+] MethodBecameNonStatic::becameNonStatic ( MethodBecameNonStatic param ) [static] 1
_ZN6TestNS21MethodBecameNonStatic15becameNonStaticES0_
|
Change |
Effect |
1 |
Method became non-static. |
Recompilation of a client program may be broken with the error message: cannot call member function _ZN6TestNS21MethodBecameNonStatic15becameNonStaticES0_ without object. |
[+] MethodBecamePrivate::method ( ) 1
_ZN6TestNS19MethodBecamePrivate6methodEv
|
Change |
Effect |
1 |
This method became private. |
Recompilation of a client program may be broken with the error message: '_ZN6TestNS19MethodBecamePrivate6methodEv' is private. |
[+] OverriddenVirtualMethod::method3 ( int param ) 1
_ZN6TestNS23OverriddenVirtualMethod7method3Ei
|
Change |
Effect |
1 |
This method became private. |
Recompilation of a client program may be broken with the error message: '_ZN6TestNS23OverriddenVirtualMethod7method3Ei' is private. |
[+] OverriddenVirtualMethod::__ct [C1] ( ) 1
_ZN6TestNS23OverriddenVirtualMethodC1Ev
|
Change |
Effect |
1 |
This method became private. |
Recompilation of a client program may be broken with the error message: '_ZN6TestNS23OverriddenVirtualMethodC1Ev' is private. |
[+] OverriddenVirtualMethod::__ct [C2] ( ) 1
_ZN6TestNS23OverriddenVirtualMethodC2Ev
|
Change |
Effect |
1 |
This method became private. |
Recompilation of a client program may be broken with the error message: '_ZN6TestNS23OverriddenVirtualMethodC2Ev' is private. |
to the top
Problems with Data Types, Medium Severity 12
libsample.h
namespace TestNS
[+] class FieldBecameConst 1
|
Change |
Effect |
1 |
Field f became const. |
Recompilation of a client program may be broken with the error message: assignment of read-only member/location 'FieldBecameConst::f'. |
[+] affected symbols: 1 (0.4%)
FieldBecameConst::method ( )
This method is from 'FieldBecameConst' class.
[+] class FieldBecameConstTypedef 1
|
Change |
Effect |
1 |
Field f became const. |
Recompilation of a client program may be broken with the error message: assignment of read-only member/location 'FieldBecameConstTypedef::f'. |
[+] affected symbols: 1 (0.4%)
FieldBecameConstTypedef::method ( CONST_INT_PTR p )
This method is from 'FieldBecameConstTypedef' class.
[+] class FieldBecameNonMutable 1
|
Change |
Effect |
1 |
Field f became non-mutable. |
Recompilation of a client program may be broken with the error message: assignment of member 'FieldBecameNonMutable::f' in read-only object. |
[+] affected symbols: 1 (0.4%)
FieldBecameNonMutable::method ( int param )
This method is from 'FieldBecameNonMutable' class.
[+] class FieldBecamePrivate 1
|
Change |
Effect |
1 |
Field f became private. |
Recompilation of a client program may be broken with the error message: 'FieldBecamePrivate::f' is private. |
[+] affected symbols: 1 (0.4%)
FieldBecamePrivate::method ( )
This method is from 'FieldBecamePrivate' class.
[+] class FieldBecameProtected 1
|
Change |
Effect |
1 |
Field f became protected. |
Recompilation of a client program may be broken with the error message: 'FieldBecameProtected::f' is protected. |
[+] affected symbols: 1 (0.4%)
FieldBecameProtected::method ( )
This method is from 'FieldBecameProtected' class.
[+] class FieldPointerLevel 1
|
Change |
Effect |
1 |
The pointer level of field i has been increased from 2 to 1. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
FieldPointerLevel::method ( FieldPointerLevel param )
1st parameter 'param' is of type 'FieldPointerLevel'.
[+] class FieldPointerLevelAndSize 1
|
Change |
Effect |
1 |
The pointer level of field i has been increased from 0 to 1. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
FieldPointerLevelAndSize::method ( FieldPointerLevelAndSize param )
1st parameter 'param' is of type 'FieldPointerLevelAndSize'.
[+] class RemovedConstOverload 1
|
Change |
Effect |
1 |
The const overload of the method removed ( ) has been removed from this class. |
Recompilation of a client program may be broken with the error message: passing 'const RemovedConstOverload' as 'this' argument of 'removed ( )' discards qualifiers. |
[+] affected symbols: 1 (0.4%)
RemovedConstOverload::removed ( )
This method is from 'RemovedConstOverload' class.
[+] struct DType 2
|
Change |
Effect |
1 |
Field i became private. |
Recompilation of a client program may be broken with the error message: 'struct DType::i' is private. |
2 |
Field j became private. |
Recompilation of a client program may be broken with the error message: 'struct DType::j' is private. |
[+] affected symbols: 1 (0.4%)
parameterTypeFormat_Safe ( struct DType param )
1st parameter 'param' is of type 'struct DType'.
[+] struct StructBecameOpaque 1
|
Change |
Effect |
1 |
This type became opaque. |
The internal structure of this type is hidden in the new library version and recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
structBecameOpaque ( struct StructBecameOpaque* param )
1st parameter 'param' (pointer) has base type 'struct StructBecameOpaque'.
[+] union UnionBecameOpaque 1
|
Change |
Effect |
1 |
This type became opaque. |
The internal structure of this type is hidden in the new library version and recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
unionBecameOpaque ( union UnionBecameOpaque* param )
1st parameter 'param' (pointer) has base type 'union UnionBecameOpaque'.
to the top
Problems with Symbols, Medium Severity 16
libsample.h
namespace TestNS
[+] addedParameter ( int param ) 1
⇣
addedParameter ( int param, int added_param )
_ZN6TestNS14addedParameterEi
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] funcParameterBaseType ( int* param ) 1
⇣
funcParameterBaseType ( long long* param )
_ZN6TestNS21funcParameterBaseTypeEPi
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] funcParameterPointerLevel ( int* param ) 1
⇣
funcParameterPointerLevel ( int** param )
_ZN6TestNS25funcParameterPointerLevelEPi
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] funcParameterPointerLevelAndSize ( long long param ) 1
⇣
funcParameterPointerLevelAndSize ( long long* param )
_ZN6TestNS32funcParameterPointerLevelAndSizeEx
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] funcParameterType ( int param, int other_param ) 1
⇣
funcParameterType ( float param, int other_param )
_ZN6TestNS17funcParameterTypeEii
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] funcParameterTypeAndSize ( int param, int other_param ) 1
⇣
funcParameterTypeAndSize ( long long param, int other_param )
_ZN6TestNS24funcParameterTypeAndSizeEii
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] funcReturnPointerLevel ( int param ) 1
_ZN6TestNS22funcReturnPointerLevelEi
|
Change |
Effect |
1 |
The pointer level of return value has been increased from 1 to 2. |
Recompilation of a client program may be broken. |
[+] funcReturnPointerLevelAndSize ( int param ) 1
_ZN6TestNS29funcReturnPointerLevelAndSizeEi
|
Change |
Effect |
1 |
The pointer level of return value has been increased from 0 to 1. |
Recompilation of a client program may be broken. |
[+] funcReturnTypeBecameVoid ( int param ) 1
_ZN6TestNS24funcReturnTypeBecameVoidEi
|
Change |
Effect |
1 |
Type of return value has been changed from int (4 bytes) to void. |
Recompilation of a client program may be broken. |
[+] globalDataBecameConst [data] 1
_ZN6TestNS21globalDataBecameConstE
|
Change |
Effect |
1 |
This global data became const. |
Recompilation of a client program may be broken. |
[+] GlobalDataBecameConst::Data [data] 1
_ZN6TestNS21GlobalDataBecameConst4DataE
|
Change |
Effect |
1 |
This global data became const. |
Recompilation of a client program may be broken. |
[+] MethodBecameNonConst::method ( int param ) const 1
⇣
MethodBecameNonConst::method ( int param )
_ZNK6TestNS20MethodBecameNonConst6methodEi
|
Change |
Effect |
1 |
Method became non-const. |
Recompilation of a client program may be broken with the error message: passing 'const MethodBecameNonConst' as 'this' argument of '_ZNK6TestNS20MethodBecameNonConst6methodEi' discards qualifiers. |
[+] MethodBecameProtected::method ( ) 1
_ZN6TestNS21MethodBecameProtected6methodEv
|
Change |
Effect |
1 |
This method became protected. |
Recompilation of a client program may be broken with the error message: '_ZN6TestNS21MethodBecameProtected6methodEv' is protected. |
[+] parameterDefaultValueRemoved ( int param ) 1
_ZN6TestNS28parameterDefaultValueRemovedEi
|
Change |
Effect |
1 |
The default argument 15 of 1st parameter param has been removed. |
Recompilation of a client program may be broken. |
[+] parameterTypedefChange ( float param ) 1
⇣
parameterTypedefChange ( int param )
_ZN6TestNS22parameterTypedefChangeEf
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] removedParameter ( int param, int removed_param ) 1
⇣
removedParameter ( int param )
_ZN6TestNS16removedParameterEii
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
to the top
Problems with Data Types, Low Severity 32
libsample.h
[+] class OutsideNS 1
|
Change |
Effect |
1 |
Field field2 has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.4%)
OutsideNS::someMethod ( )
This method is from 'OutsideNS' class.
libsample.h
namespace TestNS
[+] class AddedBitfield 2
|
Change |
Effect |
1 |
Field added_bitfield has been added to this type. |
This field will not be initialized or used by old client applications. |
2 |
Field added_bitfield2 has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.4%)
AddedBitfield::method ( AddedBitfield param )
1st parameter 'param' is of type 'AddedBitfield'.
[+] class AddedFieldAndSize 2
|
Change |
Effect |
1 |
Field added_member1 has been added to this type. |
This field will not be initialized or used by old client applications. |
2 |
Field added_member2 has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.4%)
AddedFieldAndSize::method ( AddedFieldAndSize param )
1st parameter 'param' is of type 'AddedFieldAndSize'.
[+] class AddedMiddleFieldAndSize 1
|
Change |
Effect |
1 |
Field added_middle_member has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.4%)
AddedMiddleFieldAndSize::method ( AddedMiddleFieldAndSize param )
1st parameter 'param' is of type 'AddedMiddleFieldAndSize'.
[+] class AddedMiddlePaddedField 1
|
Change |
Effect |
1 |
Field added_padded_field has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.4%)
AddedMiddlePaddedField::method ( int param )
This method is from 'AddedMiddlePaddedField' class.
[+] class AddedTailField 1
|
Change |
Effect |
1 |
Field added_tail_field has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.4%)
AddedTailField::method ( int param )
This method is from 'AddedTailField' class.
[+] class AllocableClassSize 1
|
Change |
Effect |
1 |
Type of field p has been changed from double[5] to double[15]. |
Recompilation of a client program may be broken. |
[+] affected symbols: 2 (0.9%)
AllocableClassSize::method ( )
This method is from 'AllocableClassSize' class.
AllocableClassSize::__ct ( )
This constructor is from 'AllocableClassSize' class.
[+] class ChangedBaseClass 2
|
Change |
Effect |
1 |
Base class AddedBaseClass has been added. |
Recompilation of a client program may be broken. |
2 |
Base class RemovedBaseClass has been removed. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
ChangedBaseClass::__ct ( )
This constructor is from 'ChangedBaseClass' class.
[+] class ChangedBaseClassAndSize 2
|
Change |
Effect |
1 |
Base class BaseClass2 has been added. |
Recompilation of a client program may be broken. |
2 |
Base class BaseClass has been removed. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
ChangedBaseClassAndSize::__ct ( )
This constructor is from 'ChangedBaseClassAndSize' class.
[+] class CopyingClassSize 1
|
Change |
Effect |
1 |
Type of field p has been changed from int[5] to int[15]. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
CopyingClassSize::method ( )
This method is from 'CopyingClassSize' class.
[+] class DecreasedClassSize 1
|
Change |
Effect |
1 |
Type of field p has been changed from double[15] to double[5]. |
Recompilation of a client program may be broken. |
[+] affected symbols: 2 (0.9%)
DecreasedClassSize::method ( )
This method is from 'DecreasedClassSize' class.
DecreasedClassSize::__ct ( )
This constructor is from 'DecreasedClassSize' class.
[+] class FieldBaseType 1
|
Change |
Effect |
1 |
Base type of field i has been changed from int to long long. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
FieldBaseType::method ( FieldBaseType param )
1st parameter 'param' is of type 'FieldBaseType'.
[+] class FieldPointerLevel 1
|
Change |
Effect |
1 |
Type of field i has been changed from int** to int*. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
FieldPointerLevel::method ( FieldPointerLevel param )
1st parameter 'param' is of type 'FieldPointerLevel'.
[+] class FieldPointerLevelAndSize 1
|
Change |
Effect |
1 |
Type of field i has been changed from long long to long long*. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
FieldPointerLevelAndSize::method ( FieldPointerLevelAndSize param )
1st parameter 'param' is of type 'FieldPointerLevelAndSize'.
[+] class FieldTypeAndSize 1
|
Change |
Effect |
1 |
Type of field i has been changed from int to long long. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
FieldTypeAndSize::method ( FieldTypeAndSize param )
1st parameter 'param' is of type 'FieldTypeAndSize'.
[+] class MemberType 1
|
Change |
Effect |
1 |
Type of field i has been changed from int to float. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
MemberType::method ( MemberType param )
1st parameter 'param' is of type 'MemberType'.
[+] class ObjectAddedMember 2
|
Change |
Effect |
1 |
Field added_member1 has been added to this type. |
This field will not be initialized or used by old client applications. |
2 |
Field added_member2 has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.4%)
ObjectAddedMember::method ( int param )
This method is from 'ObjectAddedMember' class.
[+] class OverriddenVirtualMethod 1
|
Change |
Effect |
1 |
Virtual method OverriddenVirtualMethod_Base::method2 ( int ) has been overridden by OverriddenVirtualMethod::method2 ( int ). |
Method OverriddenVirtualMethod::method2 ( int ) will be called after recompilation instead of OverriddenVirtualMethod_Base::method2 ( int ). |
[+] affected symbols: 1 (0.4%)
OverriddenVirtualMethod_Base::method2 ( int param )
The method '_ZN6TestNS23OverriddenVirtualMethod7method2Ei' will be called instead of this method.
[+] class OverriddenVirtualMethodB 1
|
Change |
Effect |
1 |
Virtual method OverriddenVirtualMethodB::method2 ( int ) has been overridden by OverriddenVirtualMethod_Base::method2 ( int ). |
Method OverriddenVirtualMethod_Base::method2 ( int ) will be called after recompilation instead of OverriddenVirtualMethodB::method2 ( int ). |
[+] affected symbols: 1 (0.4%)
OverriddenVirtualMethodB::method2 ( int param )
The method '_ZN6TestNS28OverriddenVirtualMethod_Base7method2Ei' will be called instead of this method.
[+] class TypeSize 2
|
Change |
Effect |
1 |
Field added_member has been added to this type. |
This field will not be initialized or used by old client applications. |
2 |
Type of field i has been changed from int[5] to int[15]. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
TypeSize::method ( TypeSize param )
1st parameter 'param' is of type 'TypeSize'.
[+] class UnsafeVirtualOverride 1
|
Change |
Effect |
1 |
Virtual method SecondaryBase::bar ( ) has been overridden by UnsafeVirtualOverride::bar ( ). |
Method UnsafeVirtualOverride::bar ( ) will be called after recompilation instead of SecondaryBase::bar ( ). |
[+] affected symbols: 1 (0.4%)
SecondaryBase::bar ( )
The method '_ZN6TestNS21UnsafeVirtualOverride3barEv' will be called instead of this method.
[+] struct FieldTypeFormat 1
|
Change |
Effect |
1 |
Type of field j has been changed from struct DType1 to struct DType2. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
fieldTypeFormat ( struct FieldTypeFormat param )
1st parameter 'param' is of type 'struct FieldTypeFormat'.
[+] struct FieldTypeFormat_FuncPtr 1
|
Change |
Effect |
1 |
Base type of field j has been changed from void(*)(int) to void(*)(int, int). |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
fieldTypeFormat_FuncPtr ( struct FieldTypeFormat_FuncPtr param )
1st parameter 'param' is of type 'struct FieldTypeFormat_FuncPtr'.
[+] typedef TestFieldPtr::Field 1
|
Change |
Effect |
1 |
Base type has been changed from void*(TestFieldPtr::*) to int(TestFieldPtr::*). |
Recompilation of a client program may be broken. |
[+] affected symbols: 2 (0.9%)
TestFieldPtr::method ( void* p1 )
Field 'this._field' in the object of this method is of type 'TestFieldPtr::Field'.
TestFieldPtr::__ct ( )
Field 'this._field' in the object of this method is of type 'TestFieldPtr::Field'.
[+] typedef TestMethodPtr::Method 1
|
Change |
Effect |
1 |
Base type has been changed from void(TestMethodPtr::*)(int*) to void(TestMethodPtr::*)(int*, void*). |
Recompilation of a client program may be broken. |
[+] affected symbols: 2 (0.9%)
TestMethodPtr::method ( )
Field 'this._method' in the object of this method is of type 'TestMethodPtr::Method'.
TestMethodPtr::__ct ( )
Field 'this._method' in the object of this method is of type 'TestMethodPtr::Method'.
[+] typedef TYPEDEF_TYPE_2 1
|
Change |
Effect |
1 |
Base type has been changed from float to int. |
Recompilation of a client program may be broken. |
[+] affected symbols: 1 (0.4%)
fieldTypedefChange ( struct FieldTypedefChange param )
Field 'param.m' in 1st parameter 'param' is of type 'TYPEDEF_TYPE_2'.
to the top
Problems with Symbols, Low Severity 10
libsample.h
namespace TestNS
[+] funcReturnBaseType ( int param ) 1
_ZN6TestNS18funcReturnBaseTypeEi
|
Change |
Effect |
1 |
Base type of return value has been changed from int to long long. |
Recompilation of a client program may be broken. |
[+] funcReturnPointerLevel ( int param ) 1
_ZN6TestNS22funcReturnPointerLevelEi
|
Change |
Effect |
1 |
Type of return value has been changed from int* to int**. |
Recompilation of a client program may be broken. |
[+] funcReturnPointerLevelAndSize ( int param ) 1
_ZN6TestNS29funcReturnPointerLevelAndSizeEi
|
Change |
Effect |
1 |
Type of return value has been changed from long long to long long*. |
Recompilation of a client program may be broken. |
[+] funcReturnType ( int param ) 1
_ZN6TestNS14funcReturnTypeEi
|
Change |
Effect |
1 |
Type of return value has been changed from int to float. |
Recompilation of a client program may be broken. |
[+] funcReturnTypeAndSize ( int param ) 1
_ZN6TestNS21funcReturnTypeAndSizeEi
|
Change |
Effect |
1 |
Type of return value has been changed from int to long long. |
Recompilation of a client program may be broken. |
[+] globalDataBecameConst [data] 1
_ZN6TestNS21globalDataBecameConstE
|
Change |
Effect |
1 |
Type of this global data has been changed from int to int const. |
Recompilation of a client program may be broken. |
[+] GlobalDataBecameConst::Data [data] 1
_ZN6TestNS21GlobalDataBecameConst4DataE
|
Change |
Effect |
1 |
Type of this global data has been changed from int to int const. |
Recompilation of a client program may be broken. |
[+] globalDataBecameNonConst [data] 1
_ZN6TestNSL24globalDataBecameNonConstE
|
Change |
Effect |
1 |
Type of this global data has been changed from int const to int. |
Recompilation of a client program may be broken. |
[+] GlobalDataBecameNonConst::data [data] 1
_ZN6TestNS24GlobalDataBecameNonConst4dataE
|
Change |
Effect |
1 |
Type of this global data has been changed from int const to int. |
Recompilation of a client program may be broken. |
[+] InlineMethod::foo ( ) 1
_ZN6TestNS12InlineMethod3fooEv
|
Change |
Effect |
1 |
Type of return value has been changed from int to long. |
Recompilation of a client program may be broken. |
to the top
Problems with Constants, Low Severity 2
libsample.h
[+] PUBLIC_CONSTANT
|
Change |
Effect |
1 |
The value of constant PUBLIC_CONSTANT has been changed from "old_value" to "new_value". |
Recompilation of a client program may be broken. |
[+] PUBLIC_VERSION
|
Change |
Effect |
1 |
The value of constant PUBLIC_VERSION has been changed from "1.2 (3.4)" to "1.2 (3.5)". |
Recompilation of a client program may be broken. |
to the top
Other Changes in Data Types 10
libsample.h
namespace TestNS
[+] class FieldBecameMutable 1
|
Change |
Effect |
1 |
Field f became mutable. |
No effect. |
[+] affected symbols: 1 (0.4%)
FieldBecameMutable::method ( int param )
This method is from 'FieldBecameMutable' class.
[+] class FieldBecameNonVolatile 1
|
Change |
Effect |
1 |
Field f became non-volatile. |
No effect. |
[+] affected symbols: 1 (0.4%)
FieldBecameNonVolatile::method ( int param )
This method is from 'FieldBecameNonVolatile' class.
[+] class FieldBecameVolatile 1
|
Change |
Effect |
1 |
Field f became volatile. |
No effect. |
[+] affected symbols: 1 (0.4%)
FieldBecameVolatile::method ( int param )
This method is from 'FieldBecameVolatile' class.
[+] class FieldRemovedConst 1
|
Change |
Effect |
1 |
Removed const qualifier from field f. |
No effect. |
[+] affected symbols: 1 (0.4%)
FieldRemovedConst::method ( )
This method is from 'FieldRemovedConst' class.
[+] class MovedField 2
|
Change |
Effect |
1 |
The relative position of field i has been changed from 0 to 1. |
No effect. |
2 |
The relative position of field j has been changed from 1 to 0. |
No effect. |
[+] affected symbols: 1 (0.4%)
MovedField::method ( int param )
This method is from 'MovedField' class.
[+] enum AddedEnumMember 1
|
Change |
Effect |
1 |
The member NewMember with value 1 has been added. |
No effect. |
[+] affected symbols: 1 (0.4%)
addedEnumMember ( enum AddedEnumMember param )
1st parameter 'param' is of type 'enum AddedEnumMember'.
[+] enum EnumMemberValue 2
|
Change |
Effect |
1 |
Value of member MEMBER_1 has been changed from 1 to 2. |
No effect. |
2 |
Value of member MEMBER_2 has been changed from 2 to 1. |
No effect. |
[+] affected symbols: 1 (0.4%)
enumMemberValueChange ( enum EnumMemberValue param )
1st parameter 'param' is of type 'enum EnumMemberValue'.
[+] union UnionAddedField 1
|
Change |
Effect |
1 |
Field new_field has been added to this type. |
No effect. |
[+] affected symbols: 1 (0.4%)
unionAddedField ( union UnionAddedField param )
1st parameter 'param' is of type 'union UnionAddedField'.
to the top
Other Changes in Symbols 19
libsample.h
namespace TestNS
[+] globalDataBecameNonConst [data] 1
_ZN6TestNSL24globalDataBecameNonConstE
|
Change |
Effect |
1 |
This global data became non-const. |
No effect. |
[+] GlobalDataBecameNonConst::data [data] 1
_ZN6TestNS24GlobalDataBecameNonConst4dataE
|
Change |
Effect |
1 |
This global data became non-const. |
No effect. |
[+] GlobalDataValue::Char [data] 1
_ZN6TestNS15GlobalDataValue4CharE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 'o' to 'N'. |
No effect. |
[+] GlobalDataValue::Integer [data] 1
_ZN6TestNS15GlobalDataValue7IntegerE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 10 to 15. |
No effect. |
[+] globalDataValue_Char [data] 1
_ZN6TestNSL20globalDataValue_CharE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 'o' to 'N'. |
No effect. |
[+] globalDataValue_Integer [data] 1
_ZN6TestNSL23globalDataValue_IntegerE
|
Change |
Effect |
1 |
The initial value of this global data has been changed from 10 to 15. |
No effect. |
[+] MethodBecameConst::method ( int param ) 1
⇣
MethodBecameConst::method ( int param ) const
_ZN6TestNS17MethodBecameConst6methodEi
|
Change |
Effect |
1 |
Method became const. |
No effect. |
[+] MethodBecameConstVolatile::method ( int param ) 2
⇣
MethodBecameConstVolatile::method ( int param ) const volatile
_ZN6TestNS25MethodBecameConstVolatile6methodEi
|
Change |
Effect |
1 |
Method became const. |
No effect. |
2 |
Method became volatile. |
No effect. |
[+] MethodBecamePublic::method ( ) 1
_ZN6TestNS18MethodBecamePublic6methodEv
|
Change |
Effect |
1 |
This method became public. |
No effect. |
[+] MethodBecameStatic::becameStatic ( MethodBecameStatic param ) 1
_ZN6TestNS18MethodBecameStatic12becameStaticES0_
|
Change |
Effect |
1 |
Method became static. |
No effect. |
[+] MethodBecameVolatile::method ( int param ) 1
⇣
MethodBecameVolatile::method ( int param ) volatile
_ZN6TestNS20MethodBecameVolatile6methodEi
|
Change |
Effect |
1 |
Method became volatile. |
No effect. |
[+] paramDefaultValueChanged_Bool ( bool param ) 1
_ZN6TestNS29paramDefaultValueChanged_BoolEb
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from -1 to false. |
No effect. |
[+] paramDefaultValueChanged_Char ( char param ) 1
_ZN6TestNS29paramDefaultValueChanged_CharEc
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from 'A' to 'B'. |
No effect. |
[+] paramDefaultValueChanged_Integer ( int param ) 1
_ZN6TestNS32paramDefaultValueChanged_IntegerEi
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from 61455 to 61451. |
No effect. |
[+] paramDefaultValueChanged_String ( char const* param ) 1
_ZN6TestNS31paramDefaultValueChanged_StringEPKc
|
Change |
Effect |
1 |
The default argument of 1st parameter param has been changed from " str 1 " to " str 2 ". |
No effect. |
[+] ParameterBecameNonRestrict::method ( int*restrict param ) 1
⇣
ParameterBecameNonRestrict::method ( int* param )
_ZN6TestNS26ParameterBecameNonRestrict6methodEPi
|
Change |
Effect |
1 |
Parameter param became non-restrict. |
No effect. |
[+] ParameterBecameRestrict::method ( int* param ) 1
⇣
ParameterBecameRestrict::method ( int*restrict param )
_ZN6TestNS23ParameterBecameRestrict6methodEPi
|
Change |
Effect |
1 |
Parameter param became restrict. |
No effect. |
[+] parameterDefaultValueAdded ( int param ) 1
_ZN6TestNS26parameterDefaultValueAddedEi
|
Change |
Effect |
1 |
The default argument 15 of 1st parameter param has been added. |
No effect. |
to the top
Other Changes in Constants 1
libsample.h
[+] renamedFunc
|
Change |
Effect |
1 |
The constant renamedFunc with value renamedFunc_NewName has been added. |
No effect. |
to the top
Header Files 1
libsample.h
to the top
Libraries 1
libsample.so
to the top