Test Info
Library Name | yaml-cpp |
Version #1 | 0.5.1 |
Version #2 | 0.5.3 |
Arch | x86_64 |
GCC Version | 4.8.5 |
Subject | Binary Compatibility |
Test Results
Total Header Files | 33 |
Total Libraries | 1 |
Total Symbols / Types | 173 / 53 |
Compatibility |
85.5% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 9 |
Removed Symbols | High | 7 |
Problems with Data Types | High | 1 |
Medium | 2 |
Low | 2 |
Problems with Symbols | High | 8 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Added Symbols 9
emitfromevents.h,
libyaml-cpp.so.0.5.3
namespace YAML
EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsmNS_12EmitterStyle5valueE
EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsmNS_12EmitterStyle5valueE
emitter.h,
libyaml-cpp.so.0.5.3
namespace YAML
Emitter::SetDoublePrecision ( std::size_t n )
_ZN4YAML7Emitter18SetDoublePrecisionEm
Emitter::SetFloatPrecision ( std::size_t n )
_ZN4YAML7Emitter17SetFloatPrecisionEm
Emitter::SetIndent ( std::size_t n )
_ZN4YAML7Emitter9SetIndentEm
Emitter::SetPostCommentIndent ( std::size_t n )
_ZN4YAML7Emitter20SetPostCommentIndentEm
Emitter::SetPreCommentIndent ( std::size_t n )
_ZN4YAML7Emitter19SetPreCommentIndentEm
node_data.h,
libyaml-cpp.so.0.5.3
namespace YAML::detail
node_data::set_mark ( YAML::Mark const& mark )
_ZN4YAML6detail9node_data8set_markERKNS_4MarkE
node_data::set_style ( enum YAML::EmitterStyle::value style )
_ZN4YAML6detail9node_data9set_styleENS_12EmitterStyle5valueE
to the top
Removed Symbols 7
emitfromevents.h,
libyaml-cpp.so.0.5.1
namespace YAML
EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor )
_ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsm
EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor )
_ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsm
emitter.h,
libyaml-cpp.so.0.5.1
namespace YAML
Emitter::SetDoublePrecision ( unsigned int n )
_ZN4YAML7Emitter18SetDoublePrecisionEj
Emitter::SetFloatPrecision ( unsigned int n )
_ZN4YAML7Emitter17SetFloatPrecisionEj
Emitter::SetIndent ( unsigned int n )
_ZN4YAML7Emitter9SetIndentEj
Emitter::SetPostCommentIndent ( unsigned int n )
_ZN4YAML7Emitter20SetPostCommentIndentEj
Emitter::SetPreCommentIndent ( unsigned int n )
_ZN4YAML7Emitter19SetPreCommentIndentEj
to the top
Problems with Data Types, High Severity 1
node_data.h
namespace YAML::detail
[+] class node_data 1
|
Change |
Effect |
1 |
Size of this class has been increased from 120 bytes to 144 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: 16 (9.2%)
node_data::set_scalar ( std::string const& scalar )
This method is from 'node_data' class.
node_data::mark_defined ( )
This method is from 'node_data' class.
node_data::end ( )
This method is from 'node_data' class.
node_data::get ( node& key, shared_memory_holder pMemory )
This method is from 'node_data' class.
node_data::begin ( )
This method is from 'node_data' class.
node_data::insert ( node& key, node& value, shared_memory_holder pMemory )
This method is from 'node_data' class.
node_data::remove ( node& key, shared_memory_holder pMemory )
This method is from 'node_data' class.
node_data::set_tag ( std::string const& tag )
This method is from 'node_data' class.
node_data::set_null ( )
This method is from 'node_data' class.
node_data::set_type ( enum YAML::NodeType::value type )
This method is from 'node_data' class.
...
to the top
Problems with Symbols, High Severity 8
emitfromevents.h,
libyaml-cpp.so.0.5.1
namespace YAML
[+] EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor ) 1
⇣
EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsm
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsm to _ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsmNS_12EmitterStyle5valueE. This may cause undefined reference linker error in old client applications. |
[+] EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor ) 1
⇣
EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsm
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsm to _ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsmNS_12EmitterStyle5valueE. This may cause undefined reference linker error in old client applications. |
emitter.h,
libyaml-cpp.so.0.5.1
namespace YAML
[+] Emitter::SetDoublePrecision ( unsigned int n ) 1
⇣
Emitter::SetDoublePrecision ( std::size_t n )
_ZN4YAML7Emitter18SetDoublePrecisionEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN4YAML7Emitter18SetDoublePrecisionEj to _ZN4YAML7Emitter18SetDoublePrecisionEm. This may cause undefined reference linker error in old client applications. |
[+] Emitter::SetFloatPrecision ( unsigned int n ) 1
⇣
Emitter::SetFloatPrecision ( std::size_t n )
_ZN4YAML7Emitter17SetFloatPrecisionEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN4YAML7Emitter17SetFloatPrecisionEj to _ZN4YAML7Emitter17SetFloatPrecisionEm. This may cause undefined reference linker error in old client applications. |
[+] Emitter::SetIndent ( unsigned int n ) 1
⇣
Emitter::SetIndent ( std::size_t n )
_ZN4YAML7Emitter9SetIndentEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN4YAML7Emitter9SetIndentEj to _ZN4YAML7Emitter9SetIndentEm. This may cause undefined reference linker error in old client applications. |
[+] Emitter::SetPostCommentIndent ( unsigned int n ) 1
⇣
Emitter::SetPostCommentIndent ( std::size_t n )
_ZN4YAML7Emitter20SetPostCommentIndentEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN4YAML7Emitter20SetPostCommentIndentEj to _ZN4YAML7Emitter20SetPostCommentIndentEm. This may cause undefined reference linker error in old client applications. |
[+] Emitter::SetPreCommentIndent ( unsigned int n ) 1
⇣
Emitter::SetPreCommentIndent ( std::size_t n )
_ZN4YAML7Emitter19SetPreCommentIndentEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
The name of the appropriate symbol for this function on binary level has been changed from _ZN4YAML7Emitter19SetPreCommentIndentEj to _ZN4YAML7Emitter19SetPreCommentIndentEm. This may cause undefined reference linker error in old client applications. |
node_data.h,
libyaml-cpp.so.0.5.1
namespace YAML::detail
[+] node_data::get ( node& key, shared_memory_holder pMemory ) const 1
_ZNK4YAML6detail9node_data3getERNS0_4nodeEN5boost10shared_ptrINS0_13memory_holderEEE
|
Change |
Effect |
1 |
Type of return value has been changed from node& (64 bytes) to node* (8 bytes). |
1) The return value became passed in register instead of the hidden first argument, that is passed in different register, and therefore distribution of parameters on the available registers and stack will be changed. All the parameters will be incorrectly initialized by applications. 2) Applications will read the wrong memory block instead of the return value. |
to the top
Problems with Data Types, Medium Severity 2
eventhandler.h
namespace YAML
[+] class EventHandler 2
|
Change |
Effect |
1 |
Pure virtual method OnMapStart ( Mark const&, std::string const&, anchor_t, enum EmitterStyle::value ) has been added to this class instead of OnMapStart ( Mark const&, std::string const&, anchor_t ). |
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. |
2 |
Pure virtual method OnSequenceStart ( Mark const&, std::string const&, anchor_t, enum EmitterStyle::value ) has been added to this class instead of OnSequenceStart ( Mark const&, std::string const&, anchor_t ). |
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) - 13 entries | Virtual Table (New) - 13 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
8 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
16 |
~EventHandler |
~EventHandler |
24 |
~EventHandler |
~EventHandler |
32 |
__cxa_pure_virtual |
__cxa_pure_virtual |
40 |
__cxa_pure_virtual |
__cxa_pure_virtual |
48 |
__cxa_pure_virtual |
__cxa_pure_virtual |
56 |
__cxa_pure_virtual |
__cxa_pure_virtual |
64 |
__cxa_pure_virtual |
__cxa_pure_virtual |
72 |
__cxa_pure_virtual |
__cxa_pure_virtual |
80 |
__cxa_pure_virtual |
__cxa_pure_virtual |
88 |
__cxa_pure_virtual |
__cxa_pure_virtual |
96 |
__cxa_pure_virtual |
__cxa_pure_virtual |
[+] affected symbols: 3 (1.7%)
EventHandler::~EventHandler ( )
This destructor is from 'EventHandler' class.
EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor )
This method is from derived class 'EmitFromEvents'.
EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor )
This method is from derived class 'EmitFromEvents'.
to the top
Problems with Data Types, Low Severity 2
node_data.h
namespace YAML::detail
[+] class node_data 2
|
Change |
Effect |
1 |
Field m_mark has been added to this type. |
Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 |
Field m_style has been added to this type. |
Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols: 16 (9.2%)
node_data::set_scalar ( std::string const& scalar )
This method is from 'node_data' class.
node_data::mark_defined ( )
This method is from 'node_data' class.
node_data::end ( )
This method is from 'node_data' class.
node_data::get ( node& key, shared_memory_holder pMemory )
This method is from 'node_data' class.
node_data::begin ( )
This method is from 'node_data' class.
node_data::insert ( node& key, node& value, shared_memory_holder pMemory )
This method is from 'node_data' class.
node_data::remove ( node& key, shared_memory_holder pMemory )
This method is from 'node_data' class.
node_data::set_tag ( std::string const& tag )
This method is from 'node_data' class.
node_data::set_null ( )
This method is from 'node_data' class.
node_data::set_type ( enum YAML::NodeType::value type )
This method is from 'node_data' class.
...
to the top
Header Files 33
anchor.h
anchordict.h
binary.h
bool_type.h
convert.h
dll.h
emit.h
emitfromevents.h
emitter.h
emitterdef.h
emittermanip.h
eventhandler.h
exceptions.h
graphbuilder.h
impl.h
iterator.h
iterator_fwd.h
mark.h
memory.h
node.h
node_data.h
node_iterator.h
node_ref.h
noncopyable.h
null.h
ostream_wrapper.h
parse.h
parser.h
ptr.h
stlemitter.h
traits.h
type.h
yaml.h
to the top
Libraries 1
libyaml-cpp.so.0.5.1
to the top
Test Info
Library Name | yaml-cpp |
Version #1 | 0.5.1 |
Version #2 | 0.5.3 |
Arch | x86_64 |
Subject | Source Compatibility |
Test Results
Total Header Files | 33 |
Total Libraries | 1 |
Total Symbols / Types | 553 / 115 |
Compatibility |
99.2% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 9 |
Removed Symbols | High | 7 |
Problems with Data Types | High | 0 |
Medium | 0 |
Low | 0 |
Problems with Symbols | High | 0 |
Medium | 9 |
Low | 3 |
Problems with Constants | Low | 0 |
Added Symbols 9
emitfromevents.h
namespace YAML
EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsmNS_12EmitterStyle5valueE
EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsmNS_12EmitterStyle5valueE
emitter.h
namespace YAML
Emitter::SetDoublePrecision ( std::size_t n )
_ZN4YAML7Emitter18SetDoublePrecisionEm
Emitter::SetFloatPrecision ( std::size_t n )
_ZN4YAML7Emitter17SetFloatPrecisionEm
Emitter::SetIndent ( std::size_t n )
_ZN4YAML7Emitter9SetIndentEm
Emitter::SetPostCommentIndent ( std::size_t n )
_ZN4YAML7Emitter20SetPostCommentIndentEm
Emitter::SetPreCommentIndent ( std::size_t n )
_ZN4YAML7Emitter19SetPreCommentIndentEm
node_data.h
namespace YAML::detail
node_data::set_mark ( YAML::Mark const& mark )
_ZN4YAML6detail9node_data8set_markERKNS_4MarkE
node_data::set_style ( enum YAML::EmitterStyle::value style )
_ZN4YAML6detail9node_data9set_styleENS_12EmitterStyle5valueE
to the top
Removed Symbols 7
emitfromevents.h
namespace YAML
EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor )
_ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsm
EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor )
_ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsm
emitter.h
namespace YAML
Emitter::SetDoublePrecision ( unsigned int n )
_ZN4YAML7Emitter18SetDoublePrecisionEj
Emitter::SetFloatPrecision ( unsigned int n )
_ZN4YAML7Emitter17SetFloatPrecisionEj
Emitter::SetIndent ( unsigned int n )
_ZN4YAML7Emitter9SetIndentEj
Emitter::SetPostCommentIndent ( unsigned int n )
_ZN4YAML7Emitter20SetPostCommentIndentEj
Emitter::SetPreCommentIndent ( unsigned int n )
_ZN4YAML7Emitter19SetPreCommentIndentEj
to the top
Problems with Symbols, Medium Severity 9
emitfromevents.h
namespace YAML
[+] EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor ) 1
⇣
EmitFromEvents::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents10OnMapStartERKNS_4MarkERKSsm
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor ) 1
⇣
EmitFromEvents::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML14EmitFromEvents15OnSequenceStartERKNS_4MarkERKSsm
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
emitter.h
namespace YAML
[+] Emitter::SetDoublePrecision ( unsigned int n ) 1
⇣
Emitter::SetDoublePrecision ( std::size_t n )
_ZN4YAML7Emitter18SetDoublePrecisionEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] Emitter::SetFloatPrecision ( unsigned int n ) 1
⇣
Emitter::SetFloatPrecision ( std::size_t n )
_ZN4YAML7Emitter17SetFloatPrecisionEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] Emitter::SetIndent ( unsigned int n ) 1
⇣
Emitter::SetIndent ( std::size_t n )
_ZN4YAML7Emitter9SetIndentEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] Emitter::SetPostCommentIndent ( unsigned int n ) 1
⇣
Emitter::SetPostCommentIndent ( std::size_t n )
_ZN4YAML7Emitter20SetPostCommentIndentEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] Emitter::SetPreCommentIndent ( unsigned int n ) 1
⇣
Emitter::SetPreCommentIndent ( std::size_t n )
_ZN4YAML7Emitter19SetPreCommentIndentEj
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
eventhandler.h
namespace YAML
[+] EventHandler::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor ) 1
⇣
EventHandler::OnMapStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML12EventHandler10OnMapStartERKNS_4MarkERKSsm
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
[+] EventHandler::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor ) 1
⇣
EventHandler::OnSequenceStart ( Mark const& mark, std::string const& tag, anchor_t anchor, enum EmitterStyle::value style )
_ZN4YAML12EventHandler15OnSequenceStartERKNS_4MarkERKSsm
|
Change |
Effect |
1 |
Parameters list has been changed. |
Recompilation of a client program may be broken. |
to the top
Problems with Symbols, Low Severity 3
node.h
namespace YAML::detail
[+] node::get ( node& key, shared_memory_holder pMemory ) const 1
_ZNK4YAML6detail4node3getERS1_N5boost10shared_ptrINS0_13memory_holderEEE
|
Change |
Effect |
1 |
Type of return value has been changed from node& to node*. |
Recompilation of a client program may be broken. |
node_data.h
namespace YAML::detail
[+] node_data::get ( node& key, shared_memory_holder pMemory ) const 1
_ZNK4YAML6detail9node_data3getERNS0_4nodeEN5boost10shared_ptrINS0_13memory_holderEEE
|
Change |
Effect |
1 |
Type of return value has been changed from node& to node*. |
Recompilation of a client program may be broken. |
node_ref.h
namespace YAML::detail
[+] node_ref::get ( node& key, shared_memory_holder pMemory ) const 1
_ZNK4YAML6detail8node_ref3getERNS0_4nodeEN5boost10shared_ptrINS0_13memory_holderEEE
|
Change |
Effect |
1 |
Type of return value has been changed from node& to node*. |
Recompilation of a client program may be broken. |
to the top
Header Files 33
anchor.h
anchordict.h
binary.h
bool_type.h
convert.h
dll.h
emit.h
emitfromevents.h
emitter.h
emitterdef.h
emittermanip.h
eventhandler.h
exceptions.h
graphbuilder.h
impl.h
iterator.h
iterator_fwd.h
mark.h
memory.h
node.h
node_data.h
node_iterator.h
node_ref.h
noncopyable.h
null.h
ostream_wrapper.h
parse.h
parser.h
ptr.h
stlemitter.h
traits.h
type.h
yaml.h
to the top
Libraries 1
libyaml-cpp.so.0.5.1
to the top