# API compatibility report for the libyang.so object between 3.9.13 and 4.1.0 versions on x86_64

Binary
Compatibility Source
Compatibility

## Test Info

Module Name | libyang.so
Version #1 | 3.9.13
Version #2 | 4.1.0
Arch | x86_64
GCC Version | 15.2.0
Subject | Binary Compatibility

## Test Results

Total Header Files | 18
Total Source Files | 39
Total Objects | 1
Total Symbols / Types | 396 / 177
Compatibility | 29.5%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 30
Removed Symbols | High | 57
Problems with Data Types | High | 3
Medium | 13
Low | 22
Problems with Symbols | High | 79
Medium | 6
Low | 14
Problems with Constants | Low | 0

## Added Symbols 30

context.h, libyang.so.4.1.0
ly_ctx_compiled_print ( struct ly_ctx const* ctx, void* mem, void** mem_end )
ly_ctx_compiled_size ( struct ly_ctx const* ctx )
ly_ctx_free_parsed ( struct ly_ctx* ctx )
ly_ctx_is_printed ( struct ly_ctx const* ctx )
ly_ctx_new_printed ( void const* mem, struct ly_ctx** ctx )
in.h, libyang.so.4.1.0
ly_in_peek ( struct ly_in* in, uint8_t* peek )
parser_data.h, libyang.so.4.1.0
lyd_validate_ext ( struct lyd_node** ext_tree, struct lysc_ext_instance const* ext, uint32_t val_opts, struct lyd_node const* dep_tree, struct lyd_node** diff )
plugins_exts.h, libyang.so.4.1.0
lyplg_ext_compiled_node_augments ( struct lysc_ctx* ctx, struct lysc_ext_instance* ext, struct lysc_node* node )
lyplg_ext_compiled_print_add_addr ( struct ly_ht* addr_ht, void const* orig_addr, void const* addr )
lyplg_ext_compiled_print_get_addr ( struct ly_ht const* addr_ht, void const* addr )
lyplg_ext_compiled_stmts_storage_print ( struct lysc_ext_substmt const* orig_substmts, struct lysc_ext_substmt* substmts, struct ly_ht* addr_ht, struct ly_set* ptr_set, void** mem )
lyplg_ext_compiled_stmts_storage_size ( struct lysc_ext_substmt const* substmts, struct ly_ht* addr_ht )
lyplg_ext_schema_mount_create_shared_context ( struct lysc_ext_instance* ext, struct lyd_node const* ext_data )
lyplg_ext_schema_mount_destroy_inline_contexts ( struct lysc_ext_instance* ext )
lyplg_ext_schema_mount_destroy_shared_contexts ( struct lysc_ext_instance* ext )
lyplg_ext_set_parent_ctx ( struct ly_ctx* ctx, struct ly_ctx const* parent_ctx )
lyplg_ext_sprinter_ctree_add_ext_nodes ( struct lyspr_tree_ctx const* ctx, struct lysc_ext_instance* ext, lyplg_ext_sprinter_ctree_override_clb clb )
lyplg_ext_sprinter_ctree_add_nodes ( struct lyspr_tree_ctx const* ctx, struct lysc_node* nodes, lyplg_ext_sprinter_ctree_override_clb clb )
lyplg_ext_sprinter_ptree_add_ext_nodes ( struct lyspr_tree_ctx const* ctx, struct lysp_ext_instance* ext, lyplg_ext_sprinter_ptree_override_clb clb )
lyplg_ext_sprinter_ptree_add_nodes ( struct lyspr_tree_ctx const* ctx, struct lysp_node* nodes, lyplg_ext_sprinter_ptree_override_clb clb )
lyplg_ext_sprinter_tree_set_priv ( struct lyspr_tree_ctx const* ctx, void* plugin_priv, void(*free_clb)(void*) )
plugins_types.h, libyang.so.4.1.0
lyplg_type_check_value_size ( char const* type_name, enum LY_VALUE_FORMAT format, uint32_t value_size_bits, enum lyplg_lyb_size_type lyb_size_type, uint32_t lyb_fixed_size_bits, uint32_t* value_size, struct ly_err_item** err )
lyplg_type_get_highest_set_bit_pos ( uint64_t num )
lyplg_type_lyb_size_variable_bits ( struct lysc_type const* UNUSED_type, enum lyplg_lyb_size_type* size_type, uint32_t* UNUSED_fixed_size_bits )
lyplg_type_lyb_size_variable_bytes ( struct lysc_type const* UNUSED_type, enum lyplg_lyb_size_type* size_type, uint32_t* UNUSED_fixed_size_bits )
lyplg_type_print_val ( struct lysc_node const* node, char const* canon, enum LY_VALUE_FORMAT format, void* prefix_data, char const** value )
lyplg_type_validate_value_string ( struct ly_ctx const* ctx, struct lysc_type const* type, struct lyd_value* storage, struct ly_err_item** err )
tree_data.h, libyang.so.4.1.0
lyd_value_validate_dflt ( struct lysc_node const* schema, char const* value, struct lysc_prefix* prefixes, struct lyd_node const* ctx_node, struct lysc_type const** realtype, char const** canonical )
tree_schema.h, libyang.so.4.1.0
lysc_get_ext_plugin ( uintptr_t plugin_ref )
lysc_get_type_plugin ( uintptr_t plugin_ref )
to the top

## Removed Symbols 57

plugins_types.h, libyang.so.3.9.13
lyplg_type_bits_bitmap_size ( struct lysc_type_bits const* type )
lyplg_type_compare_binary ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_bits ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_boolean ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_decimal64 ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_identityref ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_int ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_leafref ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_uint ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_union ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_dup_binary ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_bits ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_instanceid ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_leafref ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_union ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_free_binary ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_free_bits ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_free_leafref ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_free_union ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_print_binary ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_bits ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_boolean ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_decimal64 ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_enum ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_identityref ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_instanceid ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_int ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_leafref ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_uint ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_union ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_sort_binary ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_bits ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_boolean ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_decimal64 ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_enum ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_identityref ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_int ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_leafref ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_uint ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_union ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_store_binary ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_bits ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_boolean ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_decimal64 ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_empty ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_enum ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_identityref ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_instanceid ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_int ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_leafref ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_uint ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_union ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_xpath10 ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_validate_instanceid ( struct ly_ctx const* ctx, struct lysc_type const* UNUSED_type, struct lyd_node const* ctx_node, struct lyd_node const* tree, struct lyd_value* storage, struct ly_err_item** err )
lyplg_type_validate_leafref ( struct ly_ctx const* ctx, struct lysc_type const* type, struct lyd_node const* ctx_node, struct lyd_node const* tree, struct lyd_value* storage, struct ly_err_item** err )
lyplg_type_validate_union ( struct ly_ctx const* ctx, struct lysc_type const* type, struct lyd_node const* ctx_node, struct lyd_node const* tree, struct lyd_value* storage, struct ly_err_item** err )
tree_data.h, libyang.so.3.9.13
lyd_lyb_data_length ( char const* data )
to the top

## Problems with Data Types, High Severity 3

plugins_exts.h
[+] struct lysp_ext_instance 1

| Change | Effect
--- | --- | ---
1 | Field record 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.

[+] affected symbols: 200 (50.5%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
...
plugins_types.h
[+] struct lyplg_type 1

| Change | Effect
--- | --- | ---
1 | Field validate 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.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_type'.
tree_data.h
[+] struct lyd_value_union 1

| Change | Effect
--- | --- | ---
1 | Field orig_len 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.

[+] affected symbols: 143 (36.1%)
ly_ctx_get_yanglib_data ( struct ly_ctx const* ctx, struct lyd_node** root_p, char const* content_id_format, ... )
Field 'root_p.meta.value.unnamed0.subvalue' in 2nd parameter 'root_p' (pointer) has base type 'struct lyd_value_union'.
ly_ctx_new_yldata ( char const* search_dir, struct lyd_node const* tree, int options, struct ly_ctx** ctx )
Field 'tree.meta.value.unnamed0.subvalue' in 2nd parameter 'tree' (pointer) has base type 'struct lyd_value_union'.
ly_set_add ( struct ly_set* set, void const* object, ly_bool list, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_clean ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_contains ( struct ly_set const* set, void const* object, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_dup ( struct ly_set const* set, void*(*duplicator)(void const*), struct ly_set** newset_p )
Field 'newset_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 3rd parameter 'newset_p' (pointer) has base type 'struct lyd_value_union'.
ly_set_erase ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_free ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_merge ( struct ly_set* trg, struct ly_set const* src, ly_bool list, void*(*duplicator)(void const*) )
Field 'src.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 2nd parameter 'src' (pointer) has base type 'struct lyd_value_union'.
ly_set_new ( struct ly_set** set_p )
Field 'set_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set_p' (pointer) has base type 'struct lyd_value_union'.
...
to the top

## Problems with Symbols, High Severity 79

context.h, libyang.so.3.9.13
[+] ly_ctx_new ( char const* search_dir, uint16_t options, struct ly_ctx** new_ctx ) 1

| Change | Effect
--- | --- | ---
1 | The parameter options became passed in r13 register instead of r15. | Applications will read the wrong memory block instead of the parameter value.

[+] ly_ctx_set_options ( struct ly_ctx* ctx, uint16_t option ) 1
⇣
ly_ctx_set_options ( struct ly_ctx* ctx, uint32_t option )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter option has been changed from uint16_t (2 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] ly_ctx_unset_options ( struct ly_ctx* ctx, uint16_t option ) 1
⇣
ly_ctx_unset_options ( struct ly_ctx* ctx, uint32_t option )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter option has been changed from uint16_t (2 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

dict.h, libyang.so.3.9.13
[+] lydict_insert_zc ( struct ly_ctx const* ctx, char* value, char const** str_p ) 1

| Change | Effect
--- | --- | ---
1 | The parameter value became passed in rbx register instead of rsi. | Applications will read the wrong memory block instead of the parameter value.

[+] lydict_remove ( struct ly_ctx const* ctx, char const* value ) 1

| Change | Effect
--- | --- | ---
1 | The parameter value became passed in rbp register instead of rbx. | Applications will read the wrong memory block instead of the parameter value.

hash_table.h, libyang.so.3.9.13
[+] lyht_new ( uint32_t size, uint16_t val_size, lyht_value_equal_cb val_equal, void* cb_data, uint16_t resize ) 2

| Change | Effect
--- | --- | ---
1 | The parameter resize became passed in r14 register instead of r13. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter val_equal became passed in r13 register instead of r14. | Applications will read the wrong memory block instead of the parameter value.

log.h, libyang.so.3.9.13
[+] ly_err_clean ( struct ly_ctx* ctx, struct ly_err_item* eitem ) 1

| Change | Effect
--- | --- | ---
1 | The parameter eitem became passed in rsi register instead of rbx. | Applications will read the wrong memory block instead of the parameter value.

parser_data.h, libyang.so.3.9.13
[+] lyd_parse_ext_op ( struct lysc_ext_instance const* ext, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, struct lyd_node** tree, struct lyd_node** op ) 1
⇣
lyd_parse_ext_op ( struct lysc_ext_instance const* ext, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, uint32_t parse_options, struct lyd_node** tree, struct lyd_node** op )

| Change | Effect
--- | --- | ---
1 | Parameter parse_options of type uint32_t has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyd_parse_op ( struct ly_ctx const* ctx, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, struct lyd_node** tree, struct lyd_node** op ) 1
⇣
lyd_parse_op ( struct ly_ctx const* ctx, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, uint32_t parse_options, struct lyd_node** tree, struct lyd_node** op )

| Change | Effect
--- | --- | ---
1 | Parameter parse_options of type uint32_t has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

parser_schema.h, libyang.so.3.9.13
[+] lys_parse ( struct ly_ctx* ctx, struct ly_in* in, enum LYS_INFORMAT format, char const** features, struct lys_module** module ) 1

| Change | Effect
--- | --- | ---
1 | The parameter features became passed in r14 register instead of r15. | Applications will read the wrong memory block instead of the parameter value.

[+] lys_parse_fd ( struct ly_ctx* ctx, int fd, enum LYS_INFORMAT format, struct lys_module** module ) 3

| Change | Effect
--- | --- | ---
1 | The parameter ctx became passed in rbx register instead of r14. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter format became passed in r12 register instead of rbp. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter module became passed in r14 register instead of r15. | Applications will read the wrong memory block instead of the parameter value.

[+] lys_parse_mem ( struct ly_ctx* ctx, char const* data, enum LYS_INFORMAT format, struct lys_module** module ) 3

| Change | Effect
--- | --- | ---
1 | The parameter ctx became passed in rbx register instead of r14. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter format became passed in r12 register instead of rbp. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter module became passed in r14 register instead of r15. | Applications will read the wrong memory block instead of the parameter value.

[+] lys_parse_path ( struct ly_ctx* ctx, char const* path, enum LYS_INFORMAT format, struct lys_module** module ) 4

| Change | Effect
--- | --- | ---
1 | The parameter ctx became passed in rbx register instead of r14. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter format became passed in r13 register instead of r12. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter module became passed in r14 register instead of r15. | Applications will read the wrong memory block instead of the parameter value.
4 | The parameter path became passed in r12 register instead of rbp. | Applications will read the wrong memory block instead of the parameter value.

plugins_exts.h, libyang.so.3.9.13
[+] lyplg_ext_get_data ( struct ly_ctx const* ctx, struct lysc_ext_instance const* ext, void** ext_data, ly_bool* ext_data_free ) 2
⇣
lyplg_ext_get_data ( struct ly_ctx const* ctx, struct lysc_ext_instance const* ext, struct lyd_node const* parent, void** ext_data, ly_bool* ext_data_free )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lyd_node const* has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
2 | The parameter ext became passed in rbx register instead of r14. | Applications will read the wrong memory block instead of the parameter value.

[+] lyplg_ext_schema_mount_create_context ( struct lysc_ext_instance const* ext, struct ly_ctx** ctx ) 1
⇣
lyplg_ext_schema_mount_create_context ( struct lysc_ext_instance const* ext, struct lyd_node const* parent, struct ly_ctx** ctx )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lyd_node const* has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_ext_schema_mount_get_parent_ref ( struct lysc_ext_instance const* ext, struct ly_set** refs ) 1
⇣
lyplg_ext_schema_mount_get_parent_ref ( struct lysc_ext_instance const* ext, struct lyd_node const* parent, struct ly_set** refs )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lyd_node const* has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

plugins_types.h, libyang.so.3.9.13
[+] lyplg_type_bits_is_bit_set ( char const* bitmap, size_t size, uint32_t bit_position ) 1
⇣
lyplg_type_bits_is_bit_set ( char const* bitmap, uint32_t size_bits, uint32_t bit_position )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter size has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_check_hints ( uint32_t hints, char const* value, size_t value_len, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err ) 1
⇣
lyplg_type_check_hints ( uint32_t hints, char const* value, uint32_t value_size, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_identity_module ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* prefix, size_t prefix_len, enum LY_VALUE_FORMAT format, void const* prefix_data ) 1
⇣
lyplg_type_identity_module ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* prefix, uint32_t prefix_len, enum LY_VALUE_FORMAT format, void const* prefix_data )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter prefix_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_lypath_free ( struct ly_ctx const* UNUSED_ctx, struct ly_path* path ) 1
⇣
lyplg_type_lypath_free ( struct ly_path* path )

| Change | Effect
--- | --- | ---
1 | 1st middle parameter UNUSED_ctx has been removed from the calling stack. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_lypath_new ( struct ly_ctx const* ctx, char const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, struct lysc_node const* ctx_node, struct lys_glob_unres* unres, struct ly_path** path, struct ly_err_item** err ) 2
⇣
lyplg_type_lypath_new ( struct ly_ctx const* ctx, char const* value, uint32_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, struct lysc_node const* ctx_node, struct lysc_ext_instance const* top_ext, struct lys_glob_unres* unres, struct ly_path** path, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Parameter top_ext of type struct lysc_ext_instance const* has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
2 | Type of 3rd parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_parse_dec64 ( uint8_t fraction_digits, char const* value, size_t value_len, int64_t* ret, struct ly_err_item** err ) 2
⇣
lyplg_type_parse_dec64 ( uint8_t fraction_digits, char const* value, uint32_t value_len, int64_t* ret, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | The parameter err became passed in r15 register instead of r14. | Applications will read the wrong memory block instead of the parameter value.
2 | Type of 3rd parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_parse_int ( char const* datatype, int base, int64_t min, int64_t max, char const* value, size_t value_len, int64_t* ret, struct ly_err_item** err ) 1
⇣
lyplg_type_parse_int ( char const* datatype, int base, int64_t min, int64_t max, char const* value, uint32_t value_len, int64_t* ret, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 6th parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_parse_uint ( char const* datatype, int base, uint64_t max, char const* value, size_t value_len, uint64_t* ret, struct ly_err_item** err ) 1
⇣
lyplg_type_parse_uint ( char const* datatype, int base, uint64_t max, char const* value, uint32_t value_len, uint64_t* ret, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, size_t value_len, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p ) 1
⇣
lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, uint32_t value_size, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_resolve_leafref ( struct lysc_type_leafref const* lref, struct lyd_node const* node, struct lyd_value* value, struct lyd_node const* tree, struct ly_set** targets, char** errmsg ) 3
⇣
lyplg_type_resolve_leafref ( struct lysc_type_leafref const* lref, struct lyd_node const* node, struct lyd_value* value, struct lyd_node const* tree, struct lysc_ext_instance const* top_ext, struct ly_set** targets, char** errmsg )

| Change | Effect
--- | --- | ---
1 | Parameter top_ext of type struct lysc_ext_instance const* has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
2 | The parameter lref became passed in r14 register instead of r15. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter value became passed in r13 register instead of r14. | Applications will read the wrong memory block instead of the parameter value.

[+] lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err ) 6
⇣
lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, uint32_t value_size_bits, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lysc_ext_instance const* UNUSED_top_ext, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Parameter UNUSED_top_ext of type struct lysc_ext_instance const* has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
2 | Parameter value_size_bits of type uint32_t has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.
3 | The parameter options became passed in r12 register instead of rbp. | Applications will read the wrong memory block instead of the parameter value.
4 | The parameter type became passed in r13 register instead of r15. | Applications will read the wrong memory block instead of the parameter value.
5 | The parameter value became passed in r14 register instead of r13. | Applications will read the wrong memory block instead of the parameter value.
6 | 4th middle parameter value_len has been removed from the calling stack. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_validate_patterns ( struct lysc_pattern** patterns, char const* str, size_t str_len, struct ly_err_item** err ) 1
⇣
lyplg_type_validate_patterns ( struct ly_ctx const* ctx, struct lysc_pattern** patterns, char const* str, uint32_t str_len, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Parameter ctx of type struct ly_ctx const* has been added to the calling stack at the middle position. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyplg_type_validate_range ( enum LY_DATA_TYPE basetype, struct lysc_range* range, int64_t value, char const* strval, size_t strval_len, struct ly_err_item** err ) 1
⇣
lyplg_type_validate_range ( enum LY_DATA_TYPE basetype, struct lysc_range* range, int64_t value, char const* strval, uint32_t strval_len, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter strval_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

tree_data.h, libyang.so.3.9.13
[+] lyd_any_copy_value ( struct lyd_node* trg, union lyd_any_value const* value, enum LYD_ANYDATA_VALUETYPE value_type ) 1

| Change | Effect
--- | --- | ---
1 | The parameter value_type became passed in rbx register instead of rbp. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_change_term_bin ( struct lyd_node* term, void const* value, size_t value_len ) 1
⇣
lyd_change_term_bin ( struct lyd_node* term, void const* value, uint32_t value_size_bits )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyd_compare_meta ( struct lyd_meta const* meta1, struct lyd_meta const* meta2 ) 1

| Change | Effect
--- | --- | ---
1 | The parameter meta2 became passed in rdx register instead of rsi. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_diff_reverse_all ( struct lyd_node const* src_diff, struct lyd_node** diff ) 1

| Change | Effect
--- | --- | ---
1 | The parameter diff became passed in rbx register instead of r15. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_find_sibling_first ( struct lyd_node const* siblings, struct lyd_node const* target, struct lyd_node** match ) 1

| Change | Effect
--- | --- | ---
1 | The parameter target became passed in rsi register instead of rdi. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lysc_node const* schema, char const* key_or_value, size_t val_len, struct lyd_node** match ) 1
⇣
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lysc_node const* schema, char const* key_or_value, uint32_t val_len, struct lyd_node** match )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter val_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyd_is_default ( struct lyd_node const* node ) 1

| Change | Effect
--- | --- | ---
1 | The parameter node became passed in rbx register instead of rbp. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_leafref_link_node_tree ( struct lyd_node const* tree ) 1

| Change | Effect
--- | --- | ---
1 | The parameter tree became passed in r12 register instead of r13. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_new_ext_path ( struct lyd_node* parent, struct lysc_ext_instance const* ext, char const* path, void const* value, uint32_t options, struct lyd_node** node ) 3

| Change | Effect
--- | --- | ---
1 | The parameter ext became passed in rsi register instead of rax. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter path became passed in r12 register instead of rdx. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter value became passed in rcx register instead of rsi. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyd_new_path ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, char const* value, uint32_t options, struct lyd_node** node ) 4

| Change | Effect
--- | --- | ---
1 | The parameter ctx became passed in rsi register instead of rax. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter node became passed in r15 register instead of r9. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter path became passed in r12 register instead of rdx. | Applications will read the wrong memory block instead of the parameter value.
4 | The parameter value became passed in rcx register instead of r10. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, size_t value_len, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node ) 4
⇣
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, uint32_t value_size_bits, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )

| Change | Effect
--- | --- | ---
1 | The parameter ctx became passed in rsi register instead of rax. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter path became passed in rbp register instead of rdx. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter value became passed in r14 register instead of r11. | Applications will read the wrong memory block instead of the parameter value.
4 | Type of 5th parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyd_new_term ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* value, uint32_t options, struct lyd_node** node ) 6

| Change | Effect
--- | --- | ---
1 | The parameter module became passed in r13 register instead of rsi. | Applications will read the wrong memory block instead of the parameter value.
2 | The parameter name became passed in r14 register instead of rdx. | Applications will read the wrong memory block instead of the parameter value.
3 | The parameter node became passed in r15 register instead of r9. | Applications will read the wrong memory block instead of the parameter value.
4 | The parameter options became passed in rbx register instead of r12. | Applications will read the wrong memory block instead of the parameter value.
5 | The parameter parent became passed in rbp register instead of rbx. | Applications will read the wrong memory block instead of the parameter value.
6 | The parameter value became passed in r12 register instead of rcx. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyd_value_compare ( struct lyd_node_term const* node, char const* value, size_t value_len ) 1
⇣
lyd_value_compare ( struct lyd_node_term const* node, char const* value, uint32_t value_len )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t (8 bytes) to uint32_t (4 bytes). | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

[+] lyd_value_get_canonical ( struct ly_ctx const* ctx, struct lyd_value const* value ) 1

| Change | Effect
--- | --- | ---
1 | The parameter ctx became passed in rdi register instead of rbp. | Applications will read the wrong memory block instead of the parameter value.

[+] lyd_value_validate ( struct ly_ctx const* ctx, struct lysc_node const* schema, char const* value, size_t value_len, struct lyd_node const* ctx_node, struct lysc_type const** realtype, char const** canonical ) 1
⇣
lyd_value_validate ( struct lysc_node const* schema, char const* value, uint32_t value_len, struct lyd_node const* ctx_node, struct lysc_type const** realtype, char const** canonical )

| Change | Effect
--- | --- | ---
1 | 1st middle parameter ctx has been removed from the calling stack. | Layout of parameter's stack has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications.

tree_schema.h, libyang.so.3.9.13
[+] lys_feature_value ( struct lys_module const* module, char const* feature ) 1

| Change | Effect
--- | --- | ---
1 | The parameter feature became passed in rbp register instead of rbx. | Applications will read the wrong memory block instead of the parameter value.

[+] lys_find_xpath_atoms ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* xpath, uint32_t options, struct ly_set** set ) 1

| Change | Effect
--- | --- | ---
1 | The parameter ctx became passed in rbp register instead of rbx. | Applications will read the wrong memory block instead of the parameter value.

to the top

## Problems with Data Types, Medium Severity 13

plugins_exts.h
[+] struct lyplg_ext_record 1

| Change | Effect
--- | --- | ---
1 | Size of field plugin has been changed from 88 bytes to 104 bytes. | 1) Size of the inclusive type has been changed. 2) Previous accesses of applications and library functions to this field may be broken.

[+] affected symbols: 1 (0.3%)
lyplg_add_extension_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_ext_record const* recs )
3rd parameter 'recs' (pointer) has base type 'struct lyplg_ext_record'.
plugins_types.h
[+] struct lyplg_type 4

| Change | Effect
--- | --- | ---
1 | Field lyb_size 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.
2 | Field validate_tree 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.
3 | Field validate_value 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.
4 | Field lyb_data_len 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.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_type'.
[+] struct lyplg_type_record 1

| Change | Effect
--- | --- | ---
1 | Size of field plugin has been changed from 72 bytes to 80 bytes. | 1) Size of the inclusive type has been changed. 2) Previous accesses of applications and library functions to this field may be broken.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
3rd parameter 'recs' (pointer) has base type 'struct lyplg_type_record'.
tree_data.h
[+] struct lyd_value_union 1

| Change | Effect
--- | --- | ---
1 | Field orig_size_bits 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: 143 (36.1%)
ly_ctx_get_yanglib_data ( struct ly_ctx const* ctx, struct lyd_node** root_p, char const* content_id_format, ... )
Field 'root_p.meta.value.unnamed0.subvalue' in 2nd parameter 'root_p' (pointer) has base type 'struct lyd_value_union'.
ly_ctx_new_yldata ( char const* search_dir, struct lyd_node const* tree, int options, struct ly_ctx** ctx )
Field 'tree.meta.value.unnamed0.subvalue' in 2nd parameter 'tree' (pointer) has base type 'struct lyd_value_union'.
ly_set_add ( struct ly_set* set, void const* object, ly_bool list, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_clean ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_contains ( struct ly_set const* set, void const* object, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_dup ( struct ly_set const* set, void*(*duplicator)(void const*), struct ly_set** newset_p )
Field 'newset_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 3rd parameter 'newset_p' (pointer) has base type 'struct lyd_value_union'.
ly_set_erase ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_free ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_merge ( struct ly_set* trg, struct ly_set const* src, ly_bool list, void*(*duplicator)(void const*) )
Field 'src.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 2nd parameter 'src' (pointer) has base type 'struct lyd_value_union'.
ly_set_new ( struct ly_set** set_p )
Field 'set_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set_p' (pointer) has base type 'struct lyd_value_union'.
...
tree_schema.h
[+] struct lys_module 3

| Change | Effect
--- | --- | ---
1 | Field extensions 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.
2 | Field submodules 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.
3 | Field latest_revision has been removed from this type. | Applications will access incorrect memory when attempting to access this field.

[+] affected symbols: 190 (48%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
...
[+] struct lysc_module 1

| Change | Effect
--- | --- | ---
1 | Field features 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: 190 (48%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
...
[+] struct lysp_ext 2

| Change | Effect
--- | --- | ---
1 | Field plugin_ref has been added at the middle position of this structural type. | Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
2 | Field compiled has been removed from this type. | Applications will access incorrect memory when attempting to access this field.

[+] affected symbols: 191 (48.2%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
...
to the top

## Problems with Symbols, Medium Severity 6

context.h, libyang.so.3.9.13
[+] ly_ctx_get_options ( struct ly_ctx const* ctx ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from uint16_t (2 bytes) to uint32_t (4 bytes). | Applications will obtain a different return value and execution may change.

[+] ly_ctx_new ( char const* search_dir, uint16_t options, struct ly_ctx** new_ctx ) 1
⇣
ly_ctx_new ( char const* search_dir, uint32_t options, struct ly_ctx** new_ctx )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter options has been changed from uint16_t (2 bytes) to uint32_t (4 bytes). | The parameter became passed in different register. Applications will read the wrong memory block instead of the parameter value. Also, distribution of other parameters on the available registers and stack may be changed.

plugins_exts.h, libyang.so.3.9.13
[+] lyplg_ext_compile_extension_instance ( struct lysc_ctx* ctx, struct lysp_ext_instance const* extp, struct lysc_ext_instance* ext ) 1
⇣
lyplg_ext_compile_extension_instance ( struct lysc_ctx* ctx, struct lysp_ext_instance const* extp, struct lysc_ext_instance* ext, struct lysc_node* parent )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lysc_node* has been added to the calling stack. | This parameter will not be initialized by old clients.

plugins_types.h, libyang.so.3.9.13
[+] lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | Base type of 6th parameter value_len has been changed from unsigned long (8 bytes) to unsigned int (4 bytes). | This parameter may be incorrectly initialized by applications.

[+] lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | Base type of 6th parameter value_len has been changed from unsigned long (8 bytes) to unsigned int (4 bytes). | This parameter may be incorrectly initialized by applications.

tree_data.h, libyang.so.3.9.13
[+] lyd_new_ext_path ( struct lyd_node* parent, struct lysc_ext_instance const* ext, char const* path, void const* value, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_ext_path ( struct lyd_node* parent, struct lysc_ext_instance const* ext, char const* path, char const* value, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter value has been changed from void const* (8 bytes) to char const* (8 bytes). | The parameter became passed in different register. Applications will read the wrong memory block instead of the parameter value. Also, distribution of other parameters on the available registers and stack may be changed.

to the top

## Problems with Data Types, Low Severity 22

context.h
[+] typedef ly_ext_data_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from LY_ERR(*)(struct lysc_ext_instance const*, void*, void**, ly_bool*) to LY_ERR(*)(struct lysc_ext_instance const*, struct lyd_node const*, void*, void**, ly_bool*). | Replacement of the base data type may indicate a change in its semantic meaning.

[+] affected symbols: 1 (0.3%)
ly_ctx_set_ext_data_clb ( struct ly_ctx* ctx, LY_ERR(*clb)(struct lysc_ext_instance const*, void*, void**, unsigned char*), void* user_data )
2nd parameter 'clb' is of type 'ly_ext_data_clb'.
plugins_exts.h
[+] struct lyplg_ext 4

| Change | Effect
--- | --- | ---
1 | Field compiled_print 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 compiled_size 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.
3 | Size of this type has been changed from 88 bytes to 104 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
4 | Field node has been renamed to node_xpath. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.

[+] affected symbols: 1 (0.3%)
lyplg_add_extension_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_ext_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_ext'.
[+] struct lyplg_ext_record 1

| Change | Effect
--- | --- | ---
1 | Size of this type has been changed from 112 bytes to 128 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.

[+] affected symbols: 1 (0.3%)
lyplg_add_extension_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_ext_record const* recs )
3rd parameter 'recs' (pointer) has base type 'struct lyplg_ext_record'.
[+] struct lysp_ext_instance 2

| Change | Effect
--- | --- | ---
1 | Size of this type has been changed from 112 bytes to 104 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
2 | Field def has been renamed to plugin_ref. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.

[+] affected symbols: 200 (50.5%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
...
[+] typedef lyplg_ext_data_snode_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from LY_ERR(*)(struct lysc_ext_instance*, struct lyd_node const*, struct lysc_node const*, char const*, size_t, LY_VALUE_FORMAT, void*, char const*, size_t, struct lysc_node const**) to LY_ERR(*)(struct lysc_ext_instance*, struct lyd_node const*, struct lysc_node const*, char const*, uint32_t, LY_VALUE_FORMAT, void*, char const*, uint32_t, ly_bool, struct lysc_node const**). | Replacement of the base data type may indicate a change in its semantic meaning.

[+] affected symbols: 1 (0.3%)
lyplg_add_extension_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_ext_record const* recs )
Field 'recs.plugin.snode' in 3rd parameter 'recs' (pointer) is of type 'lyplg_ext_data_snode_clb'.
plugins_types.h
[+] struct lyplg_type 1

| Change | Effect
--- | --- | ---
1 | Size of this type has been changed from 72 bytes to 80 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_type'.
[+] struct lyplg_type_record 1

| Change | Effect
--- | --- | ---
1 | Size of this type has been changed from 96 bytes to 104 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
3rd parameter 'recs' (pointer) has base type 'struct lyplg_type_record'.
[+] typedef lyplg_type_print_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from void const*(*)(struct ly_ctx const*, struct lyd_value const*, LY_VALUE_FORMAT, void*, ly_bool*, size_t*) to void const*(*)(struct ly_ctx const*, struct lyd_value const*, LY_VALUE_FORMAT, void*, ly_bool*, uint32_t*). | Replacement of the base data type may indicate a change in its semantic meaning.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin.print' in 3rd parameter 'recs' (pointer) is of type 'lyplg_type_print_clb'.
[+] typedef lyplg_type_store_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from LY_ERR(*)(struct ly_ctx const*, struct lysc_type const*, void const*, size_t, uint32_t, LY_VALUE_FORMAT, void*, uint32_t, struct lysc_node const*, struct lyd_value*, struct lys_glob_unres*, struct ly_err_item**) to LY_ERR(*)(struct ly_ctx const*, struct lysc_type const*, void const*, uint32_t, uint32_t, LY_VALUE_FORMAT, void*, uint32_t, struct lysc_node const*, struct lysc_ext_instance const*, struct lyd_value*, struct lys_glob_unres*, struct ly_err_item**). | Replacement of the base data type may indicate a change in its semantic meaning.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin.store' in 3rd parameter 'recs' (pointer) is of type 'lyplg_type_store_clb'.
tree_data.h
[+] enum LYD_ANYDATA_VALUETYPE 1

| Change | Effect
--- | --- | ---
1 | The member LYD_ANYDATA_LYB has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.

[+] affected symbols: 4 (1%)
lyd_any_copy_value ( struct lyd_node* trg, union lyd_any_value const* value, enum LYD_ANYDATA_VALUETYPE value_type )
3rd parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
lyd_new_any ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** node )
5th parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
lyd_new_ext_any ( struct lysc_ext_instance const* ext, char const* name, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** node )
4th parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, size_t value_len, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )
6th parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
[+] struct lyd_value_union 2

| Change | Effect
--- | --- | ---
1 | Field top_ext 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 | Size of this type has been changed from 80 bytes to 88 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.

[+] affected symbols: 143 (36.1%)
ly_ctx_get_yanglib_data ( struct ly_ctx const* ctx, struct lyd_node** root_p, char const* content_id_format, ... )
Field 'root_p.meta.value.unnamed0.subvalue' in 2nd parameter 'root_p' (pointer) has base type 'struct lyd_value_union'.
ly_ctx_new_yldata ( char const* search_dir, struct lyd_node const* tree, int options, struct ly_ctx** ctx )
Field 'tree.meta.value.unnamed0.subvalue' in 2nd parameter 'tree' (pointer) has base type 'struct lyd_value_union'.
ly_set_add ( struct ly_set* set, void const* object, ly_bool list, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_clean ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_contains ( struct ly_set const* set, void const* object, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_dup ( struct ly_set const* set, void*(*duplicator)(void const*), struct ly_set** newset_p )
Field 'newset_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 3rd parameter 'newset_p' (pointer) has base type 'struct lyd_value_union'.
ly_set_erase ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_free ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_merge ( struct ly_set* trg, struct ly_set const* src, ly_bool list, void*(*duplicator)(void const*) )
Field 'src.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 2nd parameter 'src' (pointer) has base type 'struct lyd_value_union'.
ly_set_new ( struct ly_set** set_p )
Field 'set_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set_p' (pointer) has base type 'struct lyd_value_union'.
...
[+] union lyd_any_value 1

| Change | Effect
--- | --- | ---
1 | Field mem has been removed from this union. | Applications may access incorrect memory when attempting to access this field.

[+] affected symbols: 1 (0.3%)
lyd_any_copy_value ( struct lyd_node* trg, union lyd_any_value const* value, enum LYD_ANYDATA_VALUETYPE value_type )
2nd parameter 'value' (pointer) has base type 'union lyd_any_value'.
tree_schema.h
[+] struct lys_module 1

| Change | Effect
--- | --- | ---
1 | Size of this type has been changed from 128 bytes to 144 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.

[+] affected symbols: 190 (48%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
...
[+] struct lysc_ext 1

| Change | Effect
--- | --- | ---
1 | Field plugin has been renamed to plugin_ref. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.

[+] affected symbols: 198 (50%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.augments.notifs.typedefs.type.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
...
[+] struct lysc_module 1

| Change | Effect
--- | --- | ---
1 | Size of this type has been changed from 40 bytes to 48 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.

[+] affected symbols: 190 (48%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
...
[+] struct lysc_type 1

| Change | Effect
--- | --- | ---
1 | Field plugin has been renamed to plugin_ref. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.

[+] affected symbols: 195 (49.2%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.augments.notifs.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
...
[+] struct lysc_type_leafref 1

| Change | Effect
--- | --- | ---
1 | Field plugin has been renamed to plugin_ref. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.

[+] affected symbols: 1 (0.3%)
lyplg_type_resolve_leafref ( struct lysc_type_leafref const* lref, struct lyd_node const* node, struct lyd_value* value, struct lyd_node const* tree, struct ly_set** targets, char** errmsg )
1st parameter 'lref' (pointer) has base type 'struct lysc_type_leafref'.
to the top

## Problems with Symbols, Low Severity 14

context.h, libyang.so.3.9.13
[+] ly_ctx_set_ext_data_clb ( struct ly_ctx* ctx, LY_ERR(*clb)(struct lysc_ext_instance const*, void*, void**, unsigned char*), void* user_data ) 1
⇣
ly_ctx_set_ext_data_clb ( struct ly_ctx const* ctx, LY_ERR(*clb)(struct lysc_ext_instance const*, struct lyd_node const*, void*, void**, unsigned char*), void* user_data )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter ctx has been changed from struct ly_ctx* to struct ly_ctx const*. | Replacement of parameter data type may indicate a change in its semantic meaning.

log.h, libyang.so.3.9.13
[+] ly_err_clean ( struct ly_ctx* ctx, struct ly_err_item* eitem ) 1
⇣
ly_err_clean ( struct ly_ctx const* ctx, struct ly_err_item* eitem )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter ctx has been changed from struct ly_ctx* to struct ly_ctx const*. | Replacement of parameter data type may indicate a change in its semantic meaning.

plugins_types.h, libyang.so.3.9.13
[+] lyplg_type_bits_is_bit_set ( char const* bitmap, size_t size, uint32_t bit_position ) 1
⇣
lyplg_type_bits_is_bit_set ( char const* bitmap, uint32_t size_bits, uint32_t bit_position )

| Change | Effect
--- | --- | ---
1 | 2nd parameter size has been renamed to size_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyplg_type_check_hints ( uint32_t hints, char const* value, size_t value_len, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err ) 1
⇣
lyplg_type_check_hints ( uint32_t hints, char const* value, uint32_t value_size, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | 3rd parameter value_len has been renamed to value_size. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, size_t value_len, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p ) 1
⇣
lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, uint32_t value_size, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p )

| Change | Effect
--- | --- | ---
1 | 3rd parameter value_len has been renamed to value_size. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | 6th parameter value_len has been renamed to value_size_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | 6th parameter value_len has been renamed to value_size_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err ) 1
⇣
lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, uint32_t value_size_bits, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lysc_ext_instance const* UNUSED_top_ext, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | 6th parameter UNUSED_format has been renamed to format. | Renaming of a parameter may indicate a change in its semantic meaning.

tree_data.h, libyang.so.3.9.13
[+] lyd_change_term_bin ( struct lyd_node* term, void const* value, size_t value_len ) 1
⇣
lyd_change_term_bin ( struct lyd_node* term, void const* value, uint32_t value_size_bits )

| Change | Effect
--- | --- | ---
1 | 3rd parameter value_len has been renamed to value_size_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | 4th parameter value_len has been renamed to value_size_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyd_new_list3 ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const** key_values, uint32_t* value_lengths, uint32_t options, struct lyd_node** node ) 2
⇣
lyd_new_list3 ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const** key_values, uint32_t* value_sizes_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter key_values has been changed from char const** to void const**. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | 5th parameter value_lengths has been renamed to value_sizes_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, size_t value_len, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node ) 1
⇣
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, uint32_t value_size_bits, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )

| Change | Effect
--- | --- | ---
1 | 5th parameter value_len has been renamed to value_size_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | 5th parameter value_len has been renamed to value_size_bits. | Renaming of a parameter may indicate a change in its semantic meaning.

to the top

## Header Files 18

context.h
dict.h
hash_table.h
in.h
log.h
metadata.h
out.h
parser_data.h
parser_schema.h
plugins.h
plugins_exts.h
plugins_types.h
printer_data.h
printer_schema.h
set.h
tree.h
tree_data.h
tree_schema.h
to the top

## Source Files 39

binary.c
bits.c
boolean.c
context.c
decimal64.c
dict.c
diff.c
empty.c
enumeration.c
hash_table.c
identityref.c
in.c
instanceid.c
integer.c
leafref.c
log.c
out.c
parser_lyb.c
plugins.c
plugins_exts.c
plugins_types.c
printer_data.c
printer_schema.c
printer_yang.c
schema_features.c
schema_mount.c
set.c
string.c
tree_data.c
tree_data_common.c
tree_data_free.c
tree_data_new.c
tree_schema.c
tree_schema_common.c
tree_schema_free.c
union.c
validation.c
xpath.c
xpath1.0.c
to the top

## Objects 1

libyang.so.3.9.13
to the top

## Test Info

Module Name | libyang.so
Version #1 | 3.9.13
Version #2 | 4.1.0
Arch | x86_64
Subject | Source Compatibility

## Test Results

Total Header Files | 18
Total Source Files | 39
Total Objects | 1
Total Symbols / Types | 396 / 177
Compatibility | 33.8%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 30
Removed Symbols | High | 57
Problems with Data Types | High | 13
Medium | 0
Low | 15
Problems with Symbols | High | 13
Medium | 1
Low | 23
Problems with Constants | Low | 0
Other Changes in Symbols | - | 11

## Added Symbols 30

context.h
ly_ctx_compiled_print ( struct ly_ctx const* ctx, void* mem, void** mem_end )
ly_ctx_compiled_size ( struct ly_ctx const* ctx )
ly_ctx_free_parsed ( struct ly_ctx* ctx )
ly_ctx_is_printed ( struct ly_ctx const* ctx )
ly_ctx_new_printed ( void const* mem, struct ly_ctx** ctx )
in.h
ly_in_peek ( struct ly_in* in, uint8_t* peek )
parser_data.h
lyd_validate_ext ( struct lyd_node** ext_tree, struct lysc_ext_instance const* ext, uint32_t val_opts, struct lyd_node const* dep_tree, struct lyd_node** diff )
plugins_exts.h
lyplg_ext_compiled_node_augments ( struct lysc_ctx* ctx, struct lysc_ext_instance* ext, struct lysc_node* node )
lyplg_ext_compiled_print_add_addr ( struct ly_ht* addr_ht, void const* orig_addr, void const* addr )
lyplg_ext_compiled_print_get_addr ( struct ly_ht const* addr_ht, void const* addr )
lyplg_ext_compiled_stmts_storage_print ( struct lysc_ext_substmt const* orig_substmts, struct lysc_ext_substmt* substmts, struct ly_ht* addr_ht, struct ly_set* ptr_set, void** mem )
lyplg_ext_compiled_stmts_storage_size ( struct lysc_ext_substmt const* substmts, struct ly_ht* addr_ht )
lyplg_ext_schema_mount_create_shared_context ( struct lysc_ext_instance* ext, struct lyd_node const* ext_data )
lyplg_ext_schema_mount_destroy_inline_contexts ( struct lysc_ext_instance* ext )
lyplg_ext_schema_mount_destroy_shared_contexts ( struct lysc_ext_instance* ext )
lyplg_ext_set_parent_ctx ( struct ly_ctx* ctx, struct ly_ctx const* parent_ctx )
lyplg_ext_sprinter_ctree_add_ext_nodes ( struct lyspr_tree_ctx const* ctx, struct lysc_ext_instance* ext, lyplg_ext_sprinter_ctree_override_clb clb )
lyplg_ext_sprinter_ctree_add_nodes ( struct lyspr_tree_ctx const* ctx, struct lysc_node* nodes, lyplg_ext_sprinter_ctree_override_clb clb )
lyplg_ext_sprinter_ptree_add_ext_nodes ( struct lyspr_tree_ctx const* ctx, struct lysp_ext_instance* ext, lyplg_ext_sprinter_ptree_override_clb clb )
lyplg_ext_sprinter_ptree_add_nodes ( struct lyspr_tree_ctx const* ctx, struct lysp_node* nodes, lyplg_ext_sprinter_ptree_override_clb clb )
lyplg_ext_sprinter_tree_set_priv ( struct lyspr_tree_ctx const* ctx, void* plugin_priv, void(*free_clb)(void*) )
plugins_types.h
lyplg_type_check_value_size ( char const* type_name, enum LY_VALUE_FORMAT format, uint32_t value_size_bits, enum lyplg_lyb_size_type lyb_size_type, uint32_t lyb_fixed_size_bits, uint32_t* value_size, struct ly_err_item** err )
lyplg_type_get_highest_set_bit_pos ( uint64_t num )
lyplg_type_lyb_size_variable_bits ( struct lysc_type const* UNUSED_type, enum lyplg_lyb_size_type* size_type, uint32_t* UNUSED_fixed_size_bits )
lyplg_type_lyb_size_variable_bytes ( struct lysc_type const* UNUSED_type, enum lyplg_lyb_size_type* size_type, uint32_t* UNUSED_fixed_size_bits )
lyplg_type_print_val ( struct lysc_node const* node, char const* canon, enum LY_VALUE_FORMAT format, void* prefix_data, char const** value )
lyplg_type_validate_value_string ( struct ly_ctx const* ctx, struct lysc_type const* type, struct lyd_value* storage, struct ly_err_item** err )
tree_data.h
lyd_value_validate_dflt ( struct lysc_node const* schema, char const* value, struct lysc_prefix* prefixes, struct lyd_node const* ctx_node, struct lysc_type const** realtype, char const** canonical )
tree_schema.h
lysc_get_ext_plugin ( uintptr_t plugin_ref )
lysc_get_type_plugin ( uintptr_t plugin_ref )
to the top

## Removed Symbols 57

plugins_types.h
lyplg_type_bits_bitmap_size ( struct lysc_type_bits const* type )
lyplg_type_compare_binary ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_bits ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_boolean ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_decimal64 ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_identityref ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_int ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_leafref ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_uint ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_compare_union ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_dup_binary ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_bits ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_instanceid ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_leafref ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_dup_union ( struct ly_ctx const* ctx, struct lyd_value const* original, struct lyd_value* dup )
lyplg_type_free_binary ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_free_bits ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_free_leafref ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_free_union ( struct ly_ctx const* ctx, struct lyd_value* value )
lyplg_type_print_binary ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_bits ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_boolean ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_decimal64 ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_enum ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_identityref ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_instanceid ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_int ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_leafref ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_uint ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_print_union ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len )
lyplg_type_sort_binary ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_bits ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_boolean ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_decimal64 ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_enum ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_identityref ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_int ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_leafref ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_uint ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_sort_union ( struct ly_ctx const* ctx, struct lyd_value const* val1, struct lyd_value const* val2 )
lyplg_type_store_binary ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_bits ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_boolean ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_decimal64 ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_empty ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_enum ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_identityref ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_instanceid ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_int ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_leafref ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_uint ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_store_union ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* unres, struct ly_err_item** err )
lyplg_type_store_xpath10 ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, uint32_t hints, struct lysc_node const* ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )
lyplg_type_validate_instanceid ( struct ly_ctx const* ctx, struct lysc_type const* UNUSED_type, struct lyd_node const* ctx_node, struct lyd_node const* tree, struct lyd_value* storage, struct ly_err_item** err )
lyplg_type_validate_leafref ( struct ly_ctx const* ctx, struct lysc_type const* type, struct lyd_node const* ctx_node, struct lyd_node const* tree, struct lyd_value* storage, struct ly_err_item** err )
lyplg_type_validate_union ( struct ly_ctx const* ctx, struct lysc_type const* type, struct lyd_node const* ctx_node, struct lyd_node const* tree, struct lyd_value* storage, struct ly_err_item** err )
tree_data.h
lyd_lyb_data_length ( char const* data )
to the top

## Problems with Data Types, High Severity 13

plugins_exts.h
[+] struct lyplg_ext 1

| Change | Effect
--- | --- | ---
1 | Field node has been renamed to node_xpath. | Recompilation of a client program may be broken with the error message: struct lyplg_ext has no member named node.

[+] affected symbols: 1 (0.3%)
lyplg_add_extension_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_ext_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_ext'.
[+] struct lysp_ext_instance 2

| Change | Effect
--- | --- | ---
1 | Field record has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lysp_ext_instance' has no member named 'record'.
2 | Field def has been renamed to plugin_ref. | Recompilation of a client program may be broken with the error message: struct lysp_ext_instance has no member named def.

[+] affected symbols: 200 (50.5%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.augments.when.exts' in the return value (pointer) has base type 'struct lysp_ext_instance'.
...
plugins_types.h
[+] struct lyplg_type 2

| Change | Effect
--- | --- | ---
1 | Field lyb_data_len has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyplg_type' has no member named 'lyb_data_len'.
2 | Field validate has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyplg_type' has no member named 'validate'.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_type'.
tree_data.h
[+] enum LYD_ANYDATA_VALUETYPE 1

| Change | Effect
--- | --- | ---
1 | The member LYD_ANYDATA_LYB has been removed. | Recompilation of a client program may be broken.

[+] affected symbols: 4 (1%)
lyd_any_copy_value ( struct lyd_node* trg, union lyd_any_value const* value, enum LYD_ANYDATA_VALUETYPE value_type )
3rd parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
lyd_new_any ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** node )
5th parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
lyd_new_ext_any ( struct lysc_ext_instance const* ext, char const* name, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** node )
4th parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, size_t value_len, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )
6th parameter 'value_type' is of type 'enum LYD_ANYDATA_VALUETYPE'.
[+] struct lyd_value_union 1

| Change | Effect
--- | --- | ---
1 | Field orig_len has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyd_value_union' has no member named 'orig_len'.

[+] affected symbols: 143 (36.1%)
ly_ctx_get_yanglib_data ( struct ly_ctx const* ctx, struct lyd_node** root_p, char const* content_id_format, ... )
Field 'root_p.meta.value.unnamed0.subvalue' in 2nd parameter 'root_p' (pointer) has base type 'struct lyd_value_union'.
ly_ctx_new_yldata ( char const* search_dir, struct lyd_node const* tree, int options, struct ly_ctx** ctx )
Field 'tree.meta.value.unnamed0.subvalue' in 2nd parameter 'tree' (pointer) has base type 'struct lyd_value_union'.
ly_set_add ( struct ly_set* set, void const* object, ly_bool list, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_clean ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_contains ( struct ly_set const* set, void const* object, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_dup ( struct ly_set const* set, void*(*duplicator)(void const*), struct ly_set** newset_p )
Field 'newset_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 3rd parameter 'newset_p' (pointer) has base type 'struct lyd_value_union'.
ly_set_erase ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_free ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_merge ( struct ly_set* trg, struct ly_set const* src, ly_bool list, void*(*duplicator)(void const*) )
Field 'src.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 2nd parameter 'src' (pointer) has base type 'struct lyd_value_union'.
ly_set_new ( struct ly_set** set_p )
Field 'set_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set_p' (pointer) has base type 'struct lyd_value_union'.
...
[+] union lyd_any_value 1

| Change | Effect
--- | --- | ---
1 | Field mem has been removed from this union. | Recompilation of a client program may be broken.

[+] affected symbols: 1 (0.3%)
lyd_any_copy_value ( struct lyd_node* trg, union lyd_any_value const* value, enum LYD_ANYDATA_VALUETYPE value_type )
2nd parameter 'value' (pointer) has base type 'union lyd_any_value'.
tree_schema.h
[+] struct lys_module 1

| Change | Effect
--- | --- | ---
1 | Field latest_revision has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lys_module' has no member named 'latest_revision'.

[+] affected symbols: 190 (48%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
...
[+] struct lysc_ext 1

| Change | Effect
--- | --- | ---
1 | Field plugin has been renamed to plugin_ref. | Recompilation of a client program may be broken with the error message: struct lysc_ext has no member named plugin.

[+] affected symbols: 198 (50%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.augments.notifs.typedefs.type.compiled.exts.def' in the return value (pointer) has base type 'struct lysc_ext'.
...
[+] struct lysc_type 1

| Change | Effect
--- | --- | ---
1 | Field plugin has been renamed to plugin_ref. | Recompilation of a client program may be broken with the error message: struct lysc_type has no member named plugin.

[+] affected symbols: 195 (49.2%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.augments.notifs.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.augments.notifs.typedefs.type.compiled' in the return value (pointer) has base type 'struct lysc_type'.
...
[+] struct lysc_type_leafref 1

| Change | Effect
--- | --- | ---
1 | Field plugin has been renamed to plugin_ref. | Recompilation of a client program may be broken with the error message: struct lysc_type_leafref has no member named plugin.

[+] affected symbols: 1 (0.3%)
lyplg_type_resolve_leafref ( struct lysc_type_leafref const* lref, struct lyd_node const* node, struct lyd_value* value, struct lyd_node const* tree, struct ly_set** targets, char** errmsg )
1st parameter 'lref' (pointer) has base type 'struct lysc_type_leafref'.
[+] struct lysp_ext 1

| Change | Effect
--- | --- | ---
1 | Field compiled has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lysp_ext' has no member named 'compiled'.

[+] affected symbols: 191 (48.2%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
...
to the top

## Problems with Symbols, High Severity 13

parser_data.h
[+] lyd_parse_ext_op ( struct lysc_ext_instance const* ext, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, struct lyd_node** tree, struct lyd_node** op ) 1
⇣
lyd_parse_ext_op ( struct lysc_ext_instance const* ext, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, uint32_t parse_options, struct lyd_node** tree, struct lyd_node** op )

| Change | Effect
--- | --- | ---
1 | Parameter parse_options of type uint32_t has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

[+] lyd_parse_op ( struct ly_ctx const* ctx, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, struct lyd_node** tree, struct lyd_node** op ) 1
⇣
lyd_parse_op ( struct ly_ctx const* ctx, struct lyd_node* parent, struct ly_in* in, enum LYD_FORMAT format, enum lyd_type data_type, uint32_t parse_options, struct lyd_node** tree, struct lyd_node** op )

| Change | Effect
--- | --- | ---
1 | Parameter parse_options of type uint32_t has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

plugins_exts.h
[+] lyplg_ext_get_data ( struct ly_ctx const* ctx, struct lysc_ext_instance const* ext, void** ext_data, ly_bool* ext_data_free ) 1
⇣
lyplg_ext_get_data ( struct ly_ctx const* ctx, struct lysc_ext_instance const* ext, struct lyd_node const* parent, void** ext_data, ly_bool* ext_data_free )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lyd_node const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

[+] lyplg_ext_schema_mount_create_context ( struct lysc_ext_instance const* ext, struct ly_ctx** ctx ) 1
⇣
lyplg_ext_schema_mount_create_context ( struct lysc_ext_instance const* ext, struct lyd_node const* parent, struct ly_ctx** ctx )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lyd_node const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

[+] lyplg_ext_schema_mount_get_parent_ref ( struct lysc_ext_instance const* ext, struct ly_set** refs ) 1
⇣
lyplg_ext_schema_mount_get_parent_ref ( struct lysc_ext_instance const* ext, struct lyd_node const* parent, struct ly_set** refs )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lyd_node const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

plugins_types.h
[+] lyplg_type_lypath_free ( struct ly_ctx const* UNUSED_ctx, struct ly_path* path ) 1
⇣
lyplg_type_lypath_free ( struct ly_path* path )

| Change | Effect
--- | --- | ---
1 | 1st middle parameter UNUSED_ctx has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lyplg_type_lypath_new ( struct ly_ctx const* ctx, char const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, struct lysc_node const* ctx_node, struct lys_glob_unres* unres, struct ly_path** path, struct ly_err_item** err ) 1
⇣
lyplg_type_lypath_new ( struct ly_ctx const* ctx, char const* value, uint32_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, struct lysc_node const* ctx_node, struct lysc_ext_instance const* top_ext, struct lys_glob_unres* unres, struct ly_path** path, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Parameter top_ext of type struct lysc_ext_instance const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

[+] lyplg_type_resolve_leafref ( struct lysc_type_leafref const* lref, struct lyd_node const* node, struct lyd_value* value, struct lyd_node const* tree, struct ly_set** targets, char** errmsg ) 1
⇣
lyplg_type_resolve_leafref ( struct lysc_type_leafref const* lref, struct lyd_node const* node, struct lyd_value* value, struct lyd_node const* tree, struct lysc_ext_instance const* top_ext, struct ly_set** targets, char** errmsg )

| Change | Effect
--- | --- | ---
1 | Parameter top_ext of type struct lysc_ext_instance const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

[+] lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err ) 3
⇣
lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, uint32_t value_size_bits, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lysc_ext_instance const* UNUSED_top_ext, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Parameter UNUSED_top_ext of type struct lysc_ext_instance const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.
2 | Parameter value_size_bits of type uint32_t has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.
3 | 4th middle parameter value_len has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lyplg_type_validate_patterns ( struct lysc_pattern** patterns, char const* str, size_t str_len, struct ly_err_item** err ) 1
⇣
lyplg_type_validate_patterns ( struct ly_ctx const* ctx, struct lysc_pattern** patterns, char const* str, uint32_t str_len, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Parameter ctx of type struct ly_ctx const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.

tree_data.h
[+] lyd_value_validate ( struct ly_ctx const* ctx, struct lysc_node const* schema, char const* value, size_t value_len, struct lyd_node const* ctx_node, struct lysc_type const** realtype, char const** canonical ) 1
⇣
lyd_value_validate ( struct lysc_node const* schema, char const* value, uint32_t value_len, struct lyd_node const* ctx_node, struct lysc_type const** realtype, char const** canonical )

| Change | Effect
--- | --- | ---
1 | 1st middle parameter ctx has been removed from the calling stack. | Recompilation of a client program may be broken.

to the top

## Problems with Symbols, Medium Severity 1

plugins_exts.h
[+] lyplg_ext_compile_extension_instance ( struct lysc_ctx* ctx, struct lysp_ext_instance const* extp, struct lysc_ext_instance* ext ) 1
⇣
lyplg_ext_compile_extension_instance ( struct lysc_ctx* ctx, struct lysp_ext_instance const* extp, struct lysc_ext_instance* ext, struct lysc_node* parent )

| Change | Effect
--- | --- | ---
1 | Parameter parent of type struct lysc_node* has been added to the calling stack. | Recompilation of a client program may be broken.

to the top

## Problems with Data Types, Low Severity 15

context.h
[+] typedef ly_ext_data_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from LY_ERR(*)(struct lysc_ext_instance const*, void*, void**, ly_bool*) to LY_ERR(*)(struct lysc_ext_instance const*, struct lyd_node const*, void*, void**, ly_bool*). | Recompilation of a client program may be broken.

[+] affected symbols: 1 (0.3%)
ly_ctx_set_ext_data_clb ( struct ly_ctx* ctx, LY_ERR(*clb)(struct lysc_ext_instance const*, void*, void**, unsigned char*), void* user_data )
2nd parameter 'clb' is of type 'ly_ext_data_clb'.
plugins_exts.h
[+] struct lyplg_ext 2

| Change | Effect
--- | --- | ---
1 | Field compiled_print has been added to this type. | This field will not be initialized or used by old client applications.
2 | Field compiled_size has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 1 (0.3%)
lyplg_add_extension_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_ext_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_ext'.
[+] typedef lyplg_ext_data_snode_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from LY_ERR(*)(struct lysc_ext_instance*, struct lyd_node const*, struct lysc_node const*, char const*, size_t, LY_VALUE_FORMAT, void*, char const*, size_t, struct lysc_node const**) to LY_ERR(*)(struct lysc_ext_instance*, struct lyd_node const*, struct lysc_node const*, char const*, uint32_t, LY_VALUE_FORMAT, void*, char const*, uint32_t, ly_bool, struct lysc_node const**). | Recompilation of a client program may be broken.

[+] affected symbols: 1 (0.3%)
lyplg_add_extension_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_ext_record const* recs )
Field 'recs.plugin.snode' in 3rd parameter 'recs' (pointer) is of type 'lyplg_ext_data_snode_clb'.
plugins_types.h
[+] struct lyplg_type 3

| Change | Effect
--- | --- | ---
1 | Field lyb_size has been added to this type. | This field will not be initialized or used by old client applications.
2 | Field validate_tree has been added to this type. | This field will not be initialized or used by old client applications.
3 | Field validate_value has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin' in 3rd parameter 'recs' (pointer) is of type 'struct lyplg_type'.
[+] typedef lyplg_type_print_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from void const*(*)(struct ly_ctx const*, struct lyd_value const*, LY_VALUE_FORMAT, void*, ly_bool*, size_t*) to void const*(*)(struct ly_ctx const*, struct lyd_value const*, LY_VALUE_FORMAT, void*, ly_bool*, uint32_t*). | Recompilation of a client program may be broken.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin.print' in 3rd parameter 'recs' (pointer) is of type 'lyplg_type_print_clb'.
[+] typedef lyplg_type_store_clb 1

| Change | Effect
--- | --- | ---
1 | Base type has been changed from LY_ERR(*)(struct ly_ctx const*, struct lysc_type const*, void const*, size_t, uint32_t, LY_VALUE_FORMAT, void*, uint32_t, struct lysc_node const*, struct lyd_value*, struct lys_glob_unres*, struct ly_err_item**) to LY_ERR(*)(struct ly_ctx const*, struct lysc_type const*, void const*, uint32_t, uint32_t, LY_VALUE_FORMAT, void*, uint32_t, struct lysc_node const*, struct lysc_ext_instance const*, struct lyd_value*, struct lys_glob_unres*, struct ly_err_item**). | Recompilation of a client program may be broken.

[+] affected symbols: 1 (0.3%)
lyplg_add_type_plugin ( struct ly_ctx* ctx, uint32_t version, struct lyplg_type_record const* recs )
Field 'recs.plugin.store' in 3rd parameter 'recs' (pointer) is of type 'lyplg_type_store_clb'.
tree_data.h
[+] struct lyd_value_union 2

| Change | Effect
--- | --- | ---
1 | Field orig_size_bits has been added to this type. | This field will not be initialized or used by old client applications.
2 | Field top_ext has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 143 (36.1%)
ly_ctx_get_yanglib_data ( struct ly_ctx const* ctx, struct lyd_node** root_p, char const* content_id_format, ... )
Field 'root_p.meta.value.unnamed0.subvalue' in 2nd parameter 'root_p' (pointer) has base type 'struct lyd_value_union'.
ly_ctx_new_yldata ( char const* search_dir, struct lyd_node const* tree, int options, struct ly_ctx** ctx )
Field 'tree.meta.value.unnamed0.subvalue' in 2nd parameter 'tree' (pointer) has base type 'struct lyd_value_union'.
ly_set_add ( struct ly_set* set, void const* object, ly_bool list, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_clean ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_contains ( struct ly_set const* set, void const* object, uint32_t* index_p )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_dup ( struct ly_set const* set, void*(*duplicator)(void const*), struct ly_set** newset_p )
Field 'newset_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 3rd parameter 'newset_p' (pointer) has base type 'struct lyd_value_union'.
ly_set_erase ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_free ( struct ly_set* set, void(*destructor)(void*) )
Field 'set.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set' (pointer) has base type 'struct lyd_value_union'.
ly_set_merge ( struct ly_set* trg, struct ly_set const* src, ly_bool list, void*(*duplicator)(void const*) )
Field 'src.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 2nd parameter 'src' (pointer) has base type 'struct lyd_value_union'.
ly_set_new ( struct ly_set** set_p )
Field 'set_p.unnamed0.dnodes.meta.value.unnamed0.subvalue' in 1st parameter 'set_p' (pointer) has base type 'struct lyd_value_union'.
...
tree_schema.h
[+] struct lys_module 2

| Change | Effect
--- | --- | ---
1 | Field extensions has been added to this type. | This field will not be initialized or used by old client applications.
2 | Field submodules has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 190 (48%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.mod' in the return value (pointer) has base type 'struct lys_module'.
...
[+] struct lysc_module 1

| Change | Effect
--- | --- | ---
1 | Field features has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 190 (48%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.mod.compiled' in the return value (pointer) has base type 'struct lysc_module'.
...
[+] struct lysp_ext 1

| Change | Effect
--- | --- | ---
1 | Field plugin_ref has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 191 (48.2%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
Field 'retval.parsed.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* submodule, char const* revision )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule2 ( struct lys_module const* module, char const* submodule, char const* revision )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
ly_ctx_get_submodule2_latest ( struct lys_module const* module, char const* submodule )
Field 'retval.extensions' in the return value (pointer) has base type 'struct lysp_ext'.
...
to the top

## Problems with Symbols, Low Severity 23

context.h
[+] ly_ctx_get_options ( struct ly_ctx const* ctx ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from uint16_t to uint32_t. | Recompilation of a client program may be broken.

[+] ly_ctx_new ( char const* search_dir, uint16_t options, struct ly_ctx** new_ctx ) 1
⇣
ly_ctx_new ( char const* search_dir, uint32_t options, struct ly_ctx** new_ctx )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter options has been changed from uint16_t to uint32_t. | Recompilation of a client program may be broken.

[+] ly_ctx_set_options ( struct ly_ctx* ctx, uint16_t option ) 1
⇣
ly_ctx_set_options ( struct ly_ctx* ctx, uint32_t option )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter option has been changed from uint16_t to uint32_t. | Recompilation of a client program may be broken.

[+] ly_ctx_unset_options ( struct ly_ctx* ctx, uint16_t option ) 1
⇣
ly_ctx_unset_options ( struct ly_ctx* ctx, uint32_t option )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter option has been changed from uint16_t to uint32_t. | Recompilation of a client program may be broken.

plugins_types.h
[+] lyplg_type_bits_is_bit_set ( char const* bitmap, size_t size, uint32_t bit_position ) 1
⇣
lyplg_type_bits_is_bit_set ( char const* bitmap, uint32_t size_bits, uint32_t bit_position )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter size has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_check_hints ( uint32_t hints, char const* value, size_t value_len, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err ) 1
⇣
lyplg_type_check_hints ( uint32_t hints, char const* value, uint32_t value_size, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_identity_module ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* prefix, size_t prefix_len, enum LY_VALUE_FORMAT format, void const* prefix_data ) 1
⇣
lyplg_type_identity_module ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* prefix, uint32_t prefix_len, enum LY_VALUE_FORMAT format, void const* prefix_data )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter prefix_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_lypath_new ( struct ly_ctx const* ctx, char const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, struct lysc_node const* ctx_node, struct lys_glob_unres* unres, struct ly_path** path, struct ly_err_item** err ) 1
⇣
lyplg_type_lypath_new ( struct ly_ctx const* ctx, char const* value, uint32_t value_len, uint32_t options, enum LY_VALUE_FORMAT format, void* prefix_data, struct lysc_node const* ctx_node, struct lysc_ext_instance const* top_ext, struct lys_glob_unres* unres, struct ly_path** path, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_parse_dec64 ( uint8_t fraction_digits, char const* value, size_t value_len, int64_t* ret, struct ly_err_item** err ) 1
⇣
lyplg_type_parse_dec64 ( uint8_t fraction_digits, char const* value, uint32_t value_len, int64_t* ret, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_parse_int ( char const* datatype, int base, int64_t min, int64_t max, char const* value, size_t value_len, int64_t* ret, struct ly_err_item** err ) 1
⇣
lyplg_type_parse_int ( char const* datatype, int base, int64_t min, int64_t max, char const* value, uint32_t value_len, int64_t* ret, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 6th parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_parse_uint ( char const* datatype, int base, uint64_t max, char const* value, size_t value_len, uint64_t* ret, struct ly_err_item** err ) 1
⇣
lyplg_type_parse_uint ( char const* datatype, int base, uint64_t max, char const* value, uint32_t value_len, uint64_t* ret, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, size_t value_len, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p ) 1
⇣
lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, uint32_t value_size, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | Base type of 6th parameter value_len has been changed from unsigned long to unsigned int. | Recompilation of a client program may be broken.

[+] lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | Base type of 6th parameter value_len has been changed from unsigned long to unsigned int. | Recompilation of a client program may be broken.

[+] lyplg_type_validate_range ( enum LY_DATA_TYPE basetype, struct lysc_range* range, int64_t value, char const* strval, size_t strval_len, struct ly_err_item** err ) 1
⇣
lyplg_type_validate_range ( enum LY_DATA_TYPE basetype, struct lysc_range* range, int64_t value, char const* strval, uint32_t strval_len, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter strval_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

tree_data.h
[+] lyd_change_term_bin ( struct lyd_node* term, void const* value, size_t value_len ) 1
⇣
lyd_change_term_bin ( struct lyd_node* term, void const* value, uint32_t value_size_bits )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lysc_node const* schema, char const* key_or_value, size_t val_len, struct lyd_node** match ) 1
⇣
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lysc_node const* schema, char const* key_or_value, uint32_t val_len, struct lyd_node** match )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter val_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyd_new_ext_path ( struct lyd_node* parent, struct lysc_ext_instance const* ext, char const* path, void const* value, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_ext_path ( struct lyd_node* parent, struct lysc_ext_instance const* ext, char const* path, char const* value, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter value has been changed from void const* to char const*. | Recompilation of a client program may be broken.

[+] lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyd_new_list3 ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const** key_values, uint32_t* value_lengths, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_list3 ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const** key_values, uint32_t* value_sizes_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter key_values has been changed from char const** to void const**. | Recompilation of a client program may be broken.

[+] lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, size_t value_len, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node ) 1
⇣
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, uint32_t value_size_bits, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

[+] lyd_value_compare ( struct lyd_node_term const* node, char const* value, size_t value_len ) 1
⇣
lyd_value_compare ( struct lyd_node_term const* node, char const* value, uint32_t value_len )

| Change | Effect
--- | --- | ---
1 | Type of 3rd parameter value_len has been changed from size_t to uint32_t. | Recompilation of a client program may be broken.

to the top

## Other Changes in Symbols 11

plugins_types.h
[+] lyplg_type_bits_is_bit_set ( char const* bitmap, size_t size, uint32_t bit_position ) 1
⇣
lyplg_type_bits_is_bit_set ( char const* bitmap, uint32_t size_bits, uint32_t bit_position )

| Change | Effect
--- | --- | ---
1 | 2nd parameter size has been renamed to size_bits. | No effect.

[+] lyplg_type_check_hints ( uint32_t hints, char const* value, size_t value_len, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err ) 1
⇣
lyplg_type_check_hints ( uint32_t hints, char const* value, uint32_t value_size, enum LY_DATA_TYPE type, int* base, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | 3rd parameter value_len has been renamed to value_size. | No effect.

[+] lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, size_t value_len, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p ) 1
⇣
lyplg_type_prefix_data_new ( struct ly_ctx const* ctx, void const* value, uint32_t value_size, enum LY_VALUE_FORMAT format, void const* prefix_data, LY_VALUE_FORMAT* format_p, void** prefix_data_p )

| Change | Effect
--- | --- | ---
1 | 3rd parameter value_len has been renamed to value_size. | No effect.

[+] lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_simple ( struct ly_ctx const* UNUSED_ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | 6th parameter value_len has been renamed to value_size_bits. | No effect.

[+] lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, size_t* value_len ) 1
⇣
lyplg_type_print_xpath10 ( struct ly_ctx const* ctx, struct lyd_value const* value, enum LY_VALUE_FORMAT format, void* prefix_data, ly_bool* dynamic, uint32_t* value_size_bits )

| Change | Effect
--- | --- | ---
1 | 6th parameter value_len has been renamed to value_size_bits. | No effect.

[+] lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, size_t value_len, uint32_t options, enum LY_VALUE_FORMAT UNUSED_format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err ) 1
⇣
lyplg_type_store_string ( struct ly_ctx const* ctx, struct lysc_type const* type, void const* value, uint32_t value_size_bits, uint32_t options, enum LY_VALUE_FORMAT format, void* UNUSED_prefix_data, uint32_t hints, struct lysc_node const* UNUSED_ctx_node, struct lysc_ext_instance const* UNUSED_top_ext, struct lyd_value* storage, struct lys_glob_unres* UNUSED_unres, struct ly_err_item** err )

| Change | Effect
--- | --- | ---
1 | 6th parameter UNUSED_format has been renamed to format. | No effect.

tree_data.h
[+] lyd_change_term_bin ( struct lyd_node* term, void const* value, size_t value_len ) 1
⇣
lyd_change_term_bin ( struct lyd_node* term, void const* value, uint32_t value_size_bits )

| Change | Effect
--- | --- | ---
1 | 3rd parameter value_len has been renamed to value_size_bits. | No effect.

[+] lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_ext_term ( struct lysc_ext_instance const* ext, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | 4th parameter value_len has been renamed to value_size_bits. | No effect.

[+] lyd_new_list3 ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const** key_values, uint32_t* value_lengths, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_list3 ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const** key_values, uint32_t* value_sizes_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | 5th parameter value_lengths has been renamed to value_sizes_bits. | No effect.

[+] lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, size_t value_len, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node ) 1
⇣
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, uint32_t value_size_bits, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )

| Change | Effect
--- | --- | ---
1 | 5th parameter value_len has been renamed to value_size_bits. | No effect.

[+] lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, size_t value_len, uint32_t options, struct lyd_node** node ) 1
⇣
lyd_new_term_bin ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, uint32_t value_size_bits, uint32_t options, struct lyd_node** node )

| Change | Effect
--- | --- | ---
1 | 5th parameter value_len has been renamed to value_size_bits. | No effect.

to the top

## Header Files 18

context.h
dict.h
hash_table.h
in.h
log.h
metadata.h
out.h
parser_data.h
parser_schema.h
plugins.h
plugins_exts.h
plugins_types.h
printer_data.h
printer_schema.h
set.h
tree.h
tree_data.h
tree_schema.h
to the top

## Source Files 39

binary.c
bits.c
boolean.c
context.c
decimal64.c
dict.c
diff.c
empty.c
enumeration.c
hash_table.c
identityref.c
in.c
instanceid.c
integer.c
leafref.c
log.c
out.c
parser_lyb.c
plugins.c
plugins_exts.c
plugins_types.c
printer_data.c
printer_schema.c
printer_yang.c
schema_features.c
schema_mount.c
set.c
string.c
tree_data.c
tree_data_common.c
tree_data_free.c
tree_data_new.c
tree_schema.c
tree_schema_common.c
tree_schema_free.c
union.c
validation.c
xpath.c
xpath1.0.c
to the top

## Objects 1

libyang.so.3.9.13
to the top