# API compatibility report for the libyang.so object between 1.9.19 and 2.0.0 versions on x86_64

Binary
Compatibility Source
Compatibility

## Test Info

Module Name | libyang.so
Version #1 | 1.9.19
Version #2 | 2.0.0
Arch | x86_64
GCC Version | 7.5.0
Subject | Binary Compatibility

## Test Results

Total Header Files | 7
Total Source Files | 11
Total Objects | 1
Total Symbols / Types | 174 / 22
Compatibility | 18.8%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 153
Removed Symbols | High | 114
Problems with Data Types | High | 17
Medium | 37
Low | 90
Problems with Symbols | High | 18
Medium | 57
Low | 57
Problems with Constants | Low | 0
Other Changes in Data Types | - | 7

## Added Symbols 153

context.h, libyang.so.2.0.0
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
ly_ctx_get_yanglib_data ( struct ly_ctx const* ctx, struct lyd_node** root_p )
ly_ctx_get_yanglib_id ( struct ly_ctx const* ctx )
ly_ctx_reset_latests ( struct ly_ctx* ctx )
ly_ctx_set_options ( struct ly_ctx* ctx, uint16_t option )
ly_ctx_unset_options ( struct ly_ctx* ctx, uint16_t option )
ly_ctx_unset_searchdir ( struct ly_ctx* ctx, char const* value )
ly_ctx_unset_searchdir_last ( struct ly_ctx* ctx, uint32_t count )
in.h, libyang.so.2.0.0
ly_in_fd ( struct ly_in* in, int fd )
ly_in_file ( struct ly_in* in, FILE* f )
ly_in_filepath ( struct ly_in* in, char const* filepath, size_t len )
ly_in_free ( struct ly_in* in, ly_bool destroy )
ly_in_memory ( struct ly_in* in, char const* str )
ly_in_new_fd ( int fd, struct ly_in** in )
ly_in_new_file ( FILE* f, struct ly_in** in )
ly_in_new_filepath ( char const* filepath, size_t len, struct ly_in** in )
ly_in_new_memory ( char const* str, struct ly_in** in )
ly_in_parsed ( struct ly_in const* in )
ly_in_reset ( struct ly_in* in )
ly_in_type ( struct ly_in const* in )
log.h, libyang.so.2.0.0
ly_err_last ( struct ly_ctx const* ctx )
ly_errcode ( struct ly_ctx const* ctx )
ly_log_dbg_groups ( uint32_t dbg_groups )
ly_log_level ( enum LY_LOG_LEVEL level )
out.h, libyang.so.2.0.0
ly_out_clb ( struct ly_out* out, ly_write_clb writeclb )
ly_out_clb_arg ( struct ly_out* out, void* arg )
ly_out_fd ( struct ly_out* out, int fd )
ly_out_file ( struct ly_out* out, FILE* f )
ly_out_filepath ( struct ly_out* out, char const* filepath )
ly_out_free ( struct ly_out* out, void(*clb_arg_destructor)(void*), ly_bool destroy )
ly_out_new_clb ( ly_write_clb writeclb, void* user_data, struct ly_out** out )
ly_out_new_fd ( int fd, struct ly_out** out )
ly_out_new_file ( FILE* f, struct ly_out** out )
ly_out_new_filepath ( char const* filepath, struct ly_out** out )
ly_out_new_memory ( char** strp, size_t size, struct ly_out** out )
ly_out_printed ( struct ly_out const* out )
ly_out_reset ( struct ly_out* out )
ly_out_type ( struct ly_out const* out )
ly_print ( struct ly_out* out, char const* format, ... )
ly_print_flush ( struct ly_out* out )
ly_write ( struct ly_out* out, char const* buf, size_t len )
parser_data.h, libyang.so.2.0.0
lyd_parse_data ( struct ly_ctx const* ctx, struct ly_in* in, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_data_fd ( struct ly_ctx const* ctx, int fd, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_data_mem ( struct ly_ctx const* ctx, char const* data, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_data_path ( struct ly_ctx const* ctx, char const* path, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_notif ( struct ly_ctx const* ctx, struct ly_in* in, enum LYD_FORMAT format, struct lyd_node** tree, struct lyd_node** ntf )
lyd_parse_reply ( struct lyd_node const* request, struct ly_in* in, enum LYD_FORMAT format, struct lyd_node** tree, struct lyd_node** op )
lyd_parse_rpc ( struct ly_ctx const* ctx, struct ly_in* in, enum LYD_FORMAT format, struct lyd_node** tree, struct lyd_node** op )
lyd_validate_all ( struct lyd_node** tree, struct ly_ctx const* ctx, uint32_t val_opts, struct lyd_node** diff )
lyd_validate_module ( struct lyd_node** tree, struct lys_module const* module, uint32_t val_opts, struct lyd_node** diff )
lyd_validate_op ( struct lyd_node* op_tree, struct lyd_node const* tree, enum LYD_VALIDATE_OP op, struct lyd_node** diff )
parser_schema.h, libyang.so.2.0.0
lys_parse ( struct ly_ctx* ctx, struct ly_in* in, enum LYS_INFORMAT format, char const** features, struct lys_module const** module )
plugins_types.h, libyang.so.2.0.0
ly_err_free ( void* ptr )
ly_err_new ( enum LY_LOG_LEVEL level, enum LY_ERR no, enum LY_VECODE vecode, char* msg, char* path, char* apptag )
ly_type_identity_isderived ( struct lysc_ident* base, struct lysc_ident* der )
ly_type_parse_dec64 ( uint8_t fraction_digits, char const* value, size_t value_len, int64_t* ret, struct ly_err_item** err )
ly_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 )
ly_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 )
ly_type_print_get_prefix ( struct lys_module const* mod, enum LY_PREFIX_FORMAT format, void* prefix_data )
ly_type_store_resolve_prefix ( struct ly_ctx const* ctx, char const* prefix, size_t prefix_len, enum LY_PREFIX_FORMAT format, void* prefix_data )
ly_type_validate_patterns ( struct lysc_pattern** patterns, char const* str, size_t str_len, struct ly_err_item** err )
ly_type_validate_range ( enum LY_DATA_TYPE basetype, struct lysc_range* range, int64_t value, char const* strval, struct ly_err_item** err )
lysc_prefixes_compile ( char const* str, size_t str_len, struct lysp_module const* prefix_mod, struct lysc_prefix** prefixes )
lysc_prefixes_dup ( struct lysc_prefix const* orig, struct lysc_prefix** dup )
lysc_prefixes_free ( struct lysc_prefix* prefixes )
printer_data.h, libyang.so.2.0.0
lyd_print_all ( struct ly_out* out, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )
lyd_print_tree ( struct ly_out* out, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )
printer_schema.h, libyang.so.2.0.0
lys_print_module ( struct ly_out* out, struct lys_module const* module, enum LYS_OUTFORMAT format, size_t UNUSED_line_length, uint32_t options )
lys_print_node ( struct ly_out* out, struct lysc_node const* node, enum LYS_OUTFORMAT format, size_t UNUSED_line_length, uint32_t options )
lys_print_submodule ( struct ly_out* out, struct lys_module const* module, struct lysp_submodule const* submodule, enum LYS_OUTFORMAT format, size_t UNUSED_line_length, uint32_t options )
set.h, libyang.so.2.0.0
ly_set_erase ( struct ly_set* set, void(*destructor)(void*) )
tree_data.h, libyang.so.2.0.0
lyd_any_copy_value ( struct lyd_node* trg, union lyd_any_value const* value, enum LYD_ANYDATA_VALUETYPE value_type )
lyd_change_meta ( struct lyd_meta* meta, char const* val_str )
lyd_change_term ( struct lyd_node* term, char const* val_str )
lyd_child ( struct lyd_node const* node )
lyd_child_no_keys ( struct lyd_node const* node )
lyd_compare_meta ( struct lyd_meta const* meta1, struct lyd_meta const* meta2 )
lyd_compare_siblings ( struct lyd_node const* node1, struct lyd_node const* node2, uint32_t options )
lyd_compare_single ( struct lyd_node const* node1, struct lyd_node const* node2, uint32_t options )
lyd_diff_apply_all ( struct lyd_node** data, struct lyd_node const* diff )
lyd_diff_apply_module ( struct lyd_node** data, struct lyd_node const* diff, struct lys_module const* mod, lyd_diff_cb diff_cb, void* cb_data )
lyd_diff_merge_all ( struct lyd_node** diff, struct lyd_node const* src_diff )
lyd_diff_merge_module ( struct lyd_node** diff, struct lyd_node const* src_diff, struct lys_module const* mod, lyd_diff_cb diff_cb, void* cb_data )
lyd_diff_merge_tree ( struct lyd_node** diff_first, struct lyd_node* diff_parent, struct lyd_node const* src_sibling, lyd_diff_cb diff_cb, void* cb_data )
lyd_diff_reverse_all ( struct lyd_node const* src_diff, struct lyd_node** diff )
lyd_diff_siblings ( struct lyd_node const* first, struct lyd_node const* second, uint16_t options, struct lyd_node** diff )
lyd_diff_tree ( struct lyd_node const* first, struct lyd_node const* second, uint16_t options, struct lyd_node** diff )
lyd_dup_meta_single ( struct lyd_meta const* meta, struct lyd_node* node, struct lyd_meta** dup )
lyd_dup_siblings ( struct lyd_node const* node, struct lyd_node_inner* parent, uint32_t options, struct lyd_node** dup )
lyd_dup_single ( struct lyd_node const* node, struct lyd_node_inner* parent, uint32_t options, struct lyd_node** dup )
lyd_find_meta ( struct lyd_meta const* first, struct lys_module const* module, char const* name )
lyd_find_sibling_first ( struct lyd_node const* siblings, struct lyd_node const* target, struct lyd_node** match )
lyd_find_xpath ( struct lyd_node const* ctx_node, char const* xpath, struct ly_set** set )
lyd_free_all ( struct lyd_node* node )
lyd_free_attr_siblings ( struct ly_ctx const* ctx, struct lyd_attr* attr )
lyd_free_attr_single ( struct ly_ctx const* ctx, struct lyd_attr* attr )
lyd_free_meta_siblings ( struct lyd_meta* meta )
lyd_free_meta_single ( struct lyd_meta* meta )
lyd_free_siblings ( struct lyd_node* node )
lyd_free_tree ( struct lyd_node* node )
lyd_insert_child ( struct lyd_node* parent, struct lyd_node* node )
lyd_is_default ( struct lyd_node const* node )
lyd_merge_siblings ( struct lyd_node** target, struct lyd_node const* source, uint16_t options )
lyd_merge_tree ( struct lyd_node** target, struct lyd_node const* source, uint16_t options )
lyd_new_any ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, ly_bool output, struct lyd_node** node )
lyd_new_attr ( struct lyd_node* parent, char const* module_name, char const* name, char const* val_str, struct lyd_attr** attr )
lyd_new_implicit_all ( struct lyd_node** tree, struct ly_ctx const* ctx, uint32_t implicit_options, struct lyd_node** diff )
lyd_new_implicit_module ( struct lyd_node** tree, struct lys_module const* module, uint32_t implicit_options, struct lyd_node** diff )
lyd_new_implicit_tree ( struct lyd_node* tree, uint32_t implicit_options, struct lyd_node** diff )
lyd_new_inner ( struct lyd_node* parent, struct lys_module const* module, char const* name, ly_bool output, struct lyd_node** node )
lyd_new_list ( struct lyd_node* parent, struct lys_module const* module, char const* name, ly_bool output, struct lyd_node** node, ... )
lyd_new_list2 ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* keys, ly_bool output, struct lyd_node** node )
lyd_new_meta ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str, struct lyd_meta** meta )
lyd_new_opaq ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* name, char const* value, char const* module_name, struct lyd_node** node )
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )
lyd_new_term ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str, ly_bool output, struct lyd_node** node )
lyd_owner_module ( struct lyd_node const* node )
lyd_parent ( struct lyd_node const* node )
lyd_target ( struct ly_path const* path, struct lyd_node const* tree )
lyd_unlink_tree ( struct lyd_node* node )
lyd_value_compare ( struct lyd_node_term const* node, char const* value, size_t value_len )
lyd_value_validate ( struct ly_ctx const* ctx, struct lyd_node_term const* node, char const* value, size_t value_len, struct lyd_node const* tree, struct lysc_type const** realtype )
tree_schema.h, libyang.so.2.0.0
lyext_parent2str ( enum LYEXT_PARENT type )
lys_feature_value ( struct lys_module const* module, char const* feature )
lys_find_child ( struct lysc_node const* parent, struct lys_module const* module, char const* name, size_t name_len, uint16_t nodetype, uint32_t options )
lys_find_expr_atoms ( struct lysc_node const* ctx_node, struct lys_module const* cur_mod, struct lyxp_expr const* expr, struct lysc_prefix const* prefixes, uint32_t options, struct ly_set** set )
lys_find_lypath_atoms ( struct ly_path const* path, struct ly_set** set )
lys_find_path_atoms ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* path, ly_bool output, struct ly_set** set )
lys_find_xpath ( struct lysc_node const* ctx_node, char const* xpath, uint32_t options, struct ly_set** set )
lys_find_xpath_atoms ( struct lysc_node const* ctx_node, char const* xpath, uint32_t options, struct ly_set** set )
lys_nodetype2str ( uint16_t nodetype )
lys_value_validate ( struct ly_ctx const* ctx, struct lysc_node const* node, char const* value, size_t value_len )
lysc_iffeature_value ( struct lysc_iffeature const* iff )
lysc_module_dfs_full ( struct lys_module const* mod, lysc_dfs_clb dfs_clb, void* data )
lysc_node_actions ( struct lysc_node const* node )
lysc_node_children ( struct lysc_node const* node, uint16_t flags )
lysc_node_children_full ( struct lysc_node const* node, uint16_t flags )
lysc_node_notifs ( struct lysc_node const* node )
lysc_node_parent_full ( struct lysc_node const* node )
lysc_path ( struct lysc_node const* node, enum LYSC_PATH_TYPE pathtype, char* buffer, size_t buflen )
lysc_set_private ( struct lysc_node const* node, void* priv, void** prev_priv_p )
lysc_tree_dfs_full ( struct lysc_node const* root, lysc_dfs_clb dfs_clb, void* data )
lysp_feature_next ( struct lysp_feature const* last, struct lysp_module const* pmod, uint32_t* idx )
lysp_node_actions ( struct lysp_node const* node )
lysp_node_children ( struct lysp_node const* node )
lysp_node_groupings ( struct lysp_node const* node )
lysp_node_notifs ( struct lysp_node const* node )
lysp_node_typedefs ( struct lysp_node const* node )
lyxp_get_expr ( struct lyxp_expr const* path )
to the top

## Removed Symbols 114

extensions.h, libyang.so.1.9.19
lyext_vlog ( struct ly_ctx const* ctx, enum LY_VECODE vecode, char const* plugin, char const* function, enum LYEXT_VLOG_ELEM elem_type, void const* elem, char const* format, ... )
lys_iffeature_free ( struct ly_ctx* ctx, struct lys_iffeature* iffeature, uint8_t iffeature_size, int shallow, void(*private_destructor)(struct lys_node const*, void*) )
libyang.h, libyang.so.1.9.19
ly_ctx_clean ( struct ly_ctx* ctx, void(*private_destructor)(struct lys_node const*, void*) )
ly_ctx_find_path ( struct ly_ctx* ctx, char const* path )
ly_ctx_get_disabled_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
ly_ctx_get_module_by_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision, int implemented )
ly_ctx_get_module_data_clb ( struct ly_ctx const* ctx, void** user_data )
ly_ctx_get_module_older ( struct ly_ctx const* ctx, struct lys_module const* module )
ly_ctx_get_node ( struct ly_ctx const* ctx, struct lys_node const* start, char const* nodeid, int output )
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* module, char const* revision, char const* submodule, char const* sub_revision )
ly_ctx_get_submodule2 ( struct lys_module const* main_module, char const* submodule )
ly_ctx_info ( struct ly_ctx* ctx )
ly_ctx_new_ylmem ( char const* search_dir, char const* data, enum LYD_FORMAT format, int options )
ly_ctx_new_ylpath ( char const* search_dir, char const* path, enum LYD_FORMAT format, int options )
ly_ctx_remove_module ( struct lys_module const* module, void(*private_destructor)(struct lys_node const*, void*) )
ly_ctx_set_allimplemented ( struct ly_ctx* ctx )
ly_ctx_set_disable_searchdir_cwd ( struct ly_ctx* ctx )
ly_ctx_set_disable_searchdirs ( struct ly_ctx* ctx )
ly_ctx_set_module_data_clb ( struct ly_ctx* ctx, ly_module_data_clb clb, void* user_data )
ly_ctx_set_prefer_searchdirs ( struct ly_ctx* ctx )
ly_ctx_set_trusted ( struct ly_ctx* ctx )
ly_ctx_unset_allimplemented ( struct ly_ctx* ctx )
ly_ctx_unset_disable_searchdir_cwd ( struct ly_ctx* ctx )
ly_ctx_unset_disable_searchdirs ( struct ly_ctx* ctx )
ly_ctx_unset_prefer_searchdirs ( struct ly_ctx* ctx )
ly_ctx_unset_searchdirs ( struct ly_ctx* ctx, int index )
ly_ctx_unset_trusted ( struct ly_ctx* ctx )
ly_errno_glob_address ( )
ly_path_data2schema ( struct ly_ctx* ctx, char const* data_path )
ly_path_xml2json ( struct ly_ctx* ctx, char const* xml_path, struct lyxml_elem* xml )
ly_verb ( enum LY_LOG_LEVEL level )
ly_verb_dbg ( int dbg_groups )
tree_data.h, libyang.so.1.9.19
lyd_change_leaf ( struct lyd_node_leaf_list* leaf, char const* val_str )
lyd_dec64_to_double ( struct lyd_node const* node )
lyd_diff ( struct lyd_node* first, struct lyd_node* second, int options )
lyd_dup ( struct lyd_node const* node, int options )
lyd_dup_to_ctx ( struct lyd_node const* node, int options, struct ly_ctx* ctx )
lyd_dup_withsiblings ( struct lyd_node const* node, int options )
lyd_find_instance ( struct lyd_node const* data, struct lys_node const* schema )
lyd_find_path ( struct lyd_node const* ctx_node, char const* path )
lyd_find_sibling ( struct lyd_node const* siblings, struct lyd_node const* target, struct lyd_node** match )
lyd_find_sibling_set ( struct lyd_node const* siblings, struct lyd_node const* target, struct ly_set** set )
lyd_free ( struct lyd_node* node )
lyd_free_attr ( struct ly_ctx* ctx, struct lyd_node* parent, struct lyd_attr* attr, int recursive )
lyd_free_diff ( struct lyd_difflist* diff )
lyd_free_val_diff ( struct lyd_difflist* diff )
lyd_free_withsiblings ( struct lyd_node* node )
lyd_insert ( struct lyd_node* parent, struct lyd_node* node )
lyd_insert_attr ( struct lyd_node* parent, struct lys_module const* mod, char const* name, char const* value )
lyd_leaf_type ( struct lyd_node_leaf_list const* leaf )
lyd_merge ( struct lyd_node* target, struct lyd_node const* source, int options )
lyd_merge_to_ctx ( struct lyd_node** trg, struct lyd_node const* src, int options, struct ly_ctx* ctx )
lyd_new ( struct lyd_node* parent, struct lys_module const* module, char const* name )
lyd_new_anydata ( struct lyd_node* parent, struct lys_module const* module, char const* name, void* value, enum LYD_ANYDATA_VALUETYPE value_type )
lyd_new_leaf ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str )
lyd_new_output ( struct lyd_node* parent, struct lys_module const* module, char const* name )
lyd_new_output_anydata ( struct lyd_node* parent, struct lys_module const* module, char const* name, void* value, enum LYD_ANYDATA_VALUETYPE value_type )
lyd_new_output_leaf ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str )
lyd_new_yangdata ( struct lys_module const* module, char const* name_template, char const* name )
lyd_node_module ( struct lyd_node const* node )
lyd_node_should_print ( struct lyd_node const* node, int options )
lyd_parse_fd ( struct ly_ctx* ctx, int fd, enum LYD_FORMAT format, int options, ... )
lyd_parse_mem ( struct ly_ctx* ctx, char const* data, enum LYD_FORMAT format, int options, ... )
lyd_parse_path ( struct ly_ctx* ctx, char const* path, enum LYD_FORMAT format, int options, ... )
lyd_parse_xml ( struct ly_ctx* ctx, struct lyxml_elem** root, int options, ... )
lyd_schema_sort ( struct lyd_node* sibling, int recursive )
lyd_unlink ( struct lyd_node* node )
lyd_validate ( struct lyd_node** node, int options, void* var_arg, ... )
lyd_validate_modules ( struct lyd_node** node, struct lys_module const** modules, int mod_count, int options, ... )
lyd_validate_value ( struct lys_node* node, char const* value )
lyd_value_type ( struct lys_node* node, char const* value, struct lys_type** type )
lyd_wd_default ( struct lyd_node_leaf_list* node )
tree_schema.h, libyang.so.1.9.19
ly_clean_plugins ( )
ly_get_loaded_plugins ( )
ly_load_plugins ( )
ly_register_exts ( struct lyext_plugin_list* plugin, char const* log_name )
ly_register_types ( struct lytype_plugin_list* plugin, char const* log_name )
lys_data_path ( struct lys_node const* node )
lys_data_path_pattern ( struct lys_node const* node, char const* placeholder )
lys_ext_complex_get_substmt ( enum LY_STMT stmt, struct lys_ext_instance_complex* ext, struct lyext_substmt** info )
lys_ext_instance_presence ( struct lys_ext* def, struct lys_ext_instance** ext, uint8_t ext_size )
lys_ext_instance_substmt ( struct lys_ext_instance const* ext )
lys_features_disable ( struct lys_module const* module, char const* feature )
lys_features_disable_force ( struct lys_module const* module, char const* feature )
lys_features_enable ( struct lys_module const* module, char const* feature )
lys_features_enable_force ( struct lys_module const* module, char const* feature )
lys_features_list ( struct lys_module const* module, uint8_t** states )
lys_features_state ( struct lys_module const* module, char const* feature )
lys_getnext_union_type ( struct lys_type const* last, struct lys_type const* type )
lys_iffeature_value ( struct lys_iffeature const* iff )
lys_implemented_module ( struct lys_module const* mod )
lys_is_disabled ( struct lys_node const* node, int recursive )
lys_is_key ( struct lys_node_leaf const* node, uint8_t* index )
lys_main_module ( struct lys_module const* module )
lys_node_module ( struct lys_node const* node )
lys_node_xpath_atomize ( struct lys_node const* node, int options )
lys_parent ( struct lys_node const* node )
lys_path ( struct lys_node const* node, int options )
lys_set_disabled ( struct lys_module const* module )
lys_set_enabled ( struct lys_module const* module )
lys_set_private ( struct lys_node const* node, void* priv )
lys_xpath_atomize ( struct lys_node const* ctx_node, enum lyxp_node_type ctx_node_type, char const* expr, int options )
xml.h, libyang.so.1.9.19
lyxml_dup ( struct ly_ctx* ctx, struct lyxml_elem* root )
lyxml_free ( struct ly_ctx* ctx, struct lyxml_elem* elem )
lyxml_free_withsiblings ( struct ly_ctx* ctx, struct lyxml_elem* elem )
lyxml_get_attr ( struct lyxml_elem const* elem, char const* name, char const* ns )
lyxml_get_ns ( struct lyxml_elem const* elem, char const* prefix )
lyxml_parse_mem ( struct ly_ctx* ctx, char const* data, int options )
lyxml_parse_path ( struct ly_ctx* ctx, char const* filename, int options )
lyxml_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyxml_elem const* elem, int options )
lyxml_print_fd ( int fd, struct lyxml_elem const* elem, int options )
lyxml_print_file ( FILE* stream, struct lyxml_elem const* elem, int options )
lyxml_print_mem ( char** strp, struct lyxml_elem const* elem, int options )
lyxml_unlink ( struct ly_ctx* ctx, struct lyxml_elem* elem )
to the top

## Problems with Data Types, High Severity 17

tree_schema.h
[+] struct lys_module 17

| Change | Effect
--- | --- | ---
1 | Field augment has been removed from the middle position of this structural type. | 1) Previous accesses of applications to the removed field will be incorrect. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
2 | Field data has been removed from the middle position of this structural type. | 1) Previous accesses of applications to the removed field will be incorrect. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
3 | Field deviated 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.
4 | Field deviation 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.
5 | Field disabled 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.
6 | Field ext 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.
7 | Field ext_size 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.
8 | Field extensions 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.
9 | Field features 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.
10 | Field ident 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.
11 | Field ident_size 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.
12 | Field imp 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.
13 | Field inc 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.
14 | Field rev 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.
15 | Field tpdf 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.
16 | Field type 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.
17 | Field version 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: 8 (4.6%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
to the top

## Problems with Symbols, High Severity 18

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

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter options has been changed from int (4 bytes) to uint16_t (2 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_set_add ( struct ly_set* set, void* node, int options ) 1
⇣
ly_set_add ( struct ly_set* set, void* object, ly_bool list, uint32_t* index_p )

| Change | Effect
--- | --- | ---
1 | Parameter list of type ly_bool 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.

[+] ly_set_log_clb ( void(*clb)(LY_LOG_LEVEL, char const*, char const*), int path ) 1
⇣
ly_set_log_clb ( ly_log_clb clb, ly_bool path )

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

[+] ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options ) 1
⇣
ly_set_merge ( struct ly_set* trg, struct ly_set* src, ly_bool list, void*(*duplicator)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter list of type ly_bool 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.

tree_data.h, libyang.so.1.9.19
[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match ) 1
⇣
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 )

| Change | Effect
--- | --- | ---
1 | Parameter val_len of type size_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_new_path ( struct lyd_node* data_tree, struct ly_ctx const* ctx, char const* path, void* value, enum LYD_ANYDATA_VALUETYPE value_type, int options ) 2
⇣
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 )

| Change | Effect
--- | --- | ---
1 | The pointer level of 6th parameter options has been increased from 0 to 2. | The library function may try to access unallocated memory by the dereferencing of old parameter value and therefore cause a crash of applications.
2 | Type of 6th parameter options has been changed from int (4 bytes) to struct lyd_node** (8 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_schema.h, libyang.so.1.9.19
[+] lys_find_path ( struct lys_module const* cur_module, struct lys_node const* cur_node, char const* path ) 4
⇣
lys_find_path ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* path, ly_bool output )

| 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.
2 | Parameter ctx_node of type struct lysc_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.
3 | 1st middle parameter cur_module 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.
4 | 2nd middle parameter cur_node 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.

[+] lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_clb ( ly_write_clb writeclb, void* user_data, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th middle parameter target_node 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.

[+] lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 4th middle parameter target_node 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.

[+] lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 4th middle parameter target_node 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.

[+] lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 4th middle parameter target_node 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.

[+] lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 4th middle parameter target_node 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.

[+] lys_search_localfile ( char const*const* searchpaths, int cwd, char const* name, char const* revision, char** localfile, LYS_INFORMAT* format ) 1
⇣
lys_search_localfile ( char const*const* searchpaths, ly_bool cwd, char const* name, char const* revision, char** localfile, LYS_INFORMAT* format )

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

[+] lys_set_implemented ( struct lys_module const* module ) 1
⇣
lys_set_implemented ( struct lys_module* mod, char const** features )

| Change | Effect
--- | --- | ---
1 | Parameter mod of type struct lys_module* 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.

to the top

## Problems with Data Types, Medium Severity 37

libyang.h
[+] enum LY_ERR 3

| Change | Effect
--- | --- | ---
1 | Value of member LY_EINT has been changed from 4 to 6. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
2 | Value of member LY_EPLUGIN has been changed from 6 to 128. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
3 | Value of member LY_EVALID has been changed from 5 to 7. | Applications may execute a wrong branch of code in the library and therefore change the behavior.

[+] affected symbols: 3 (1.7%)
ly_err_clean ( struct ly_ctx* ctx, struct ly_err_item* eitem )
Field 'eitem.no' in 2nd parameter 'eitem' (pointer) is of type 'enum LY_ERR'.
ly_err_first ( struct ly_ctx const* ctx )
Field 'retval.no' in the return value (pointer) is of type 'enum LY_ERR'.
ly_err_print ( struct ly_err_item* eitem )
Field 'eitem.no' in 1st parameter 'eitem' (pointer) is of type 'enum LY_ERR'.
tree_data.h
[+] struct lyd_node 11

| Change | Effect
--- | --- | ---
1 | The relative position of field hash has been changed from 4 to 0. | 1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed.
2 | The relative position of field prev has been changed from 2 to 4. | 1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed.
3 | Field attr 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.
4 | Field child 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.
5 | Field ht 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.
6 | Field validity 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.
7 | The relative position of field next has been changed from 1 to 3. | Applications will access incorrect memory when attempting to access this field.
8 | The relative position of field parent has been changed from 3 to 2. | Applications will access incorrect memory when attempting to access this field.
9 | The relative position of field schema has been changed from 0 to 1. | Applications will access incorrect memory when attempting to access this field.
10 | Field dflt has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
11 | Field when_status has been removed from this type. | Applications will access incorrect memory when attempting to access this field.

[+] affected symbols: 9 (5.2%)
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match )
1st parameter 'siblings' (pointer) has base type 'struct lyd_node'.
lyd_first_sibling ( struct lyd_node* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_list_pos ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_path ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options )
3rd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
tree_schema.h
[+] enum LYS_INFORMAT 1

| Change | Effect
--- | --- | ---
1 | Value of member LYS_IN_YIN has been changed from 2 to 3. | Applications may execute a wrong branch of code in the library and therefore change the behavior.

[+] affected symbols: 4 (2.3%)
lys_parse_fd ( struct ly_ctx* ctx, int fd, enum LYS_INFORMAT format )
3rd parameter 'format' is of type 'enum LYS_INFORMAT'.
lys_parse_mem ( struct ly_ctx* ctx, char const* data, enum LYS_INFORMAT format )
3rd parameter 'format' is of type 'enum LYS_INFORMAT'.
lys_parse_path ( struct ly_ctx* ctx, char const* path, enum LYS_INFORMAT format )
3rd parameter 'format' is of type 'enum LYS_INFORMAT'.
lys_search_localfile ( char const*const* searchpaths, int cwd, char const* name, char const* revision, char** localfile, LYS_INFORMAT* format )
6th parameter 'format' (pointer) has base type 'enum LYS_INFORMAT'.
[+] enum LYS_OUTFORMAT 2

| Change | Effect
--- | --- | ---
1 | Value of member LYS_OUT_TREE has been changed from 3 to 4. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
2 | Value of member LYS_OUT_YIN has been changed from 2 to 3. | Applications may execute a wrong branch of code in the library and therefore change the behavior.

[+] affected symbols: 5 (2.9%)
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
4th parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
[+] struct lys_module 20

| Change | Effect
--- | --- | ---
1 | Field augmented_by 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 compiled 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 deviated_by 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 identities 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.
5 | Field parsed 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.
6 | Field revision 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.
7 | The relative position of field latest_revision has been changed from 9 to 10. | 1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed.
8 | The relative position of field ref has been changed from 4 to 8. | 1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed.
9 | The relative position of field dsc has been changed from 3 to 7. | Applications will access incorrect memory when attempting to access this field.
10 | The relative position of field filepath has been changed from 7 to 4. | Applications will access incorrect memory when attempting to access this field.
11 | The relative position of field ns has been changed from 10 to 2. | Applications will access incorrect memory when attempting to access this field.
12 | The relative position of field prefix has been changed from 2 to 3. | Applications will access incorrect memory when attempting to access this field.
13 | Field augment_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
14 | Field deviation_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
15 | Field extensions_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
16 | Field features_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
17 | Field imp_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
18 | Field inc_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
19 | Field rev_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.
20 | Field tpdf_size has been removed from this type. | Applications will access incorrect memory when attempting to access this field.

[+] affected symbols: 8 (4.6%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
to the top

## Problems with Symbols, Medium Severity 57

dict.h, libyang.so.1.9.19
[+] lydict_insert ( struct ly_ctx* ctx, char const* value, size_t len ) 3
⇣
lydict_insert ( struct ly_ctx const* ctx, char const* value, size_t len, char const** str_p )

| Change | Effect
--- | --- | ---
1 | Parameter str_p of type char const** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
3 | Type of return value has been changed from char const* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

[+] lydict_insert_zc ( struct ly_ctx* ctx, char* value ) 3
⇣
lydict_insert_zc ( struct ly_ctx const* ctx, char* value, char const** str_p )

| Change | Effect
--- | --- | ---
1 | Parameter str_p of type char const** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
3 | Type of return value has been changed from char const* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

libyang.h, libyang.so.1.9.19
[+] ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented ) 1
⇣
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )

| Change | Effect
--- | --- | ---
1 | 4th parameter implemented has been removed from the calling stack. | This parameter will be ignored by the function.

[+] ly_ctx_get_options ( struct ly_ctx* ctx ) 1

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

[+] ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision ) 1
⇣
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision, char const** features )

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

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

| Change | Effect
--- | --- | ---
1 | Parameter new_ctx of type struct ly_ctx** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
3 | Type of return value has been changed from struct ly_ctx* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

[+] ly_set_add ( struct ly_set* set, void* node, int options ) 1
⇣
ly_set_add ( struct ly_set* set, void* object, ly_bool list, uint32_t* index_p )

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

[+] ly_set_clean ( struct ly_set* set ) 2
⇣
ly_set_clean ( struct ly_set* set, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | Type of return value has been changed from int (4 bytes) to void. | Applications will not obtain a return value and execution may change.

[+] ly_set_contains ( struct ly_set const* set, void* node ) 2
⇣
ly_set_contains ( struct ly_set const* set, void* object, uint32_t* index_p )

| Change | Effect
--- | --- | ---
1 | Parameter index_p of type uint32_t* has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | Type of return value has been changed from int (4 bytes) to ly_bool (1 byte). | Applications will obtain a different return value and execution may change.

[+] ly_set_dup ( struct ly_set const* set ) 4
⇣
ly_set_dup ( struct ly_set const* set, void*(*duplicator)(void*), struct ly_set** newset_p )

| Change | Effect
--- | --- | ---
1 | Parameter duplicator of type void*(*)(void*) has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | Parameter newset_p of type struct ly_set** has been added to the calling stack. | This parameter will not be initialized by old clients.
3 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
4 | Type of return value has been changed from struct ly_set* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

[+] ly_set_free ( struct ly_set* set ) 1
⇣
ly_set_free ( struct ly_set* set, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | This parameter will not be initialized by old clients.

[+] ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options ) 1
⇣
ly_set_merge ( struct ly_set* trg, struct ly_set* src, ly_bool list, void*(*duplicator)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter duplicator of type void*(*)(void*) has been added to the calling stack. | This parameter will not be initialized by old clients.

[+] ly_set_new ( ) 3
⇣
ly_set_new ( struct ly_set** set_p )

| Change | Effect
--- | --- | ---
1 | Parameter set_p of type struct ly_set** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
3 | Type of return value has been changed from struct ly_set* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

[+] ly_set_rm ( struct ly_set* set, void* node ) 1
⇣
ly_set_rm ( struct ly_set* set, void* object, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | This parameter will not be initialized by old clients.

[+] ly_set_rm_index ( struct ly_set* set, unsigned int index ) 1
⇣
ly_set_rm_index ( struct ly_set* set, uint32_t index, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | This parameter will not be initialized by old clients.

tree_data.h, libyang.so.1.9.19
[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match ) 1
⇣
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 )

| Change | Effect
--- | --- | ---
1 | Base type of 2nd parameter schema has been changed from struct lys_node (112 bytes) to struct lysc_node (88 bytes). | This parameter may be incorrectly initialized by applications.

[+] lyd_insert_sibling ( struct lyd_node** sibling, struct lyd_node* node ) 2
⇣
lyd_insert_sibling ( struct lyd_node* sibling, struct lyd_node* node, struct lyd_node** first )

| Change | Effect
--- | --- | ---
1 | Parameter first of type struct lyd_node** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of 1st parameter sibling has been decreased from 2 to 1. | The library function will treat the parameter as the lower-dimension array and will not read all elements. This may change the behavior of applications. NOTE: if this is out-parameter then this change may cause a crash of applications.

[+] lyd_new_path ( struct lyd_node* data_tree, struct ly_ctx const* ctx, char const* path, void* value, enum LYD_ANYDATA_VALUETYPE value_type, int options ) 2

| Change | Effect
--- | --- | ---
1 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
2 | Type of return value has been changed from struct lyd_node* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

[+] lyd_path ( struct lyd_node const* node ) 3
⇣
lyd_path ( struct lyd_node const* node, enum LYD_PATH_TYPE pathtype, char* buffer, size_t buflen )

| Change | Effect
--- | --- | ---
1 | Parameter pathtype of type enum LYD_PATH_TYPE has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | Parameter buffer of type char* has been added to the calling stack. | This parameter will not be initialized by old clients.
3 | Parameter buflen of type size_t has been added to the calling stack. | This parameter will not be initialized by old clients.

tree_schema.h, libyang.so.1.9.19
[+] lys_find_path ( struct lys_module const* cur_module, struct lys_node const* cur_node, char const* path ) 2
⇣
lys_find_path ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* path, ly_bool output )

| Change | Effect
--- | --- | ---
1 | Parameter output of type ly_bool has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | Base type of return value has been changed from struct ly_set (16 bytes) to struct lysc_node (88 bytes). | Applications will obtain a different return value and execution may change.

[+] lys_getnext ( struct lys_node const* last, struct lys_node const* parent, struct lys_module const* module, int options ) 4
⇣
lys_getnext ( struct lysc_node const* last, struct lysc_node const* parent, struct lysc_module const* module, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Base type of 1st parameter last has been changed from struct lys_node (112 bytes) to struct lysc_node (88 bytes). | This parameter may be incorrectly initialized by applications.
2 | Base type of 3rd parameter module has been changed from struct lys_module (184 bytes) to struct lysc_module (40 bytes). | This parameter may be incorrectly initialized by applications.
3 | Base type of 2nd parameter parent has been changed from struct lys_node (112 bytes) to struct lysc_node (88 bytes). | This parameter may be incorrectly initialized by applications.
4 | Base type of return value has been changed from struct lys_node (112 bytes) to struct lysc_node (88 bytes). | Applications will obtain a different return value and execution may change.

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

| Change | Effect
--- | --- | ---
1 | Parameter module of type struct lys_module const** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
3 | Type of return value has been changed from struct lys_module const* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

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

| Change | Effect
--- | --- | ---
1 | Parameter module of type struct lys_module const** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
3 | Type of return value has been changed from struct lys_module const* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

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

| Change | Effect
--- | --- | ---
1 | Parameter module of type struct lys_module const** has been added to the calling stack. | This parameter will not be initialized by old clients.
2 | The pointer level of return value has been decreased from 1 to 0. | Applications may try to access unallocated memory by the dereferencing of new return value and therefore cause a crash.
3 | Type of return value has been changed from struct lys_module const* (8 bytes) to enum LY_ERR (4 bytes). | Applications will obtain a different return value and execution may change.

[+] lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_clb ( ly_write_clb writeclb, void* user_data, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 6th parameter line_length has been removed from the calling stack. | This parameter will be ignored by the function.

[+] lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | This parameter will be ignored by the function.

[+] lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | This parameter will be ignored by the function.

[+] lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | This parameter will be ignored by the function.

[+] lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | This parameter will be ignored by the function.

[+] lys_set_implemented ( struct lys_module const* module ) 1
⇣
lys_set_implemented ( struct lys_module* mod, char const** features )

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

to the top

## Problems with Data Types, Low Severity 90

libyang.h
[+] enum LY_VECODE 77

| Change | Effect
--- | --- | ---
1 | Name of member with value 1 has been changed from LYVE_XML_MISS to LYVE_SYNTAX. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
2 | Name of member with value 10 has been changed from LYVE_MISSSTMT to LYVE_OTHER. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
3 | Name of member with value 2 has been changed from LYVE_XML_INVAL to LYVE_SYNTAX_YANG. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
4 | Name of member with value 3 has been changed from LYVE_XML_INCHAR to LYVE_SYNTAX_YIN. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
5 | Name of member with value 4 has been changed from LYVE_EOF to LYVE_REFERENCE. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
6 | Name of member with value 5 has been changed from LYVE_INSTMT to LYVE_XPATH. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
7 | Name of member with value 6 has been changed from LYVE_INPAR to LYVE_SEMANTICS. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
8 | Name of member with value 7 has been changed from LYVE_INID to LYVE_SYNTAX_XML. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
9 | Name of member with value 8 has been changed from LYVE_INDATE to LYVE_SYNTAX_JSON. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
10 | Name of member with value 9 has been changed from LYVE_INARG to LYVE_DATA. | Applications may execute a wrong branch of code in the library and therefore change the behavior.
11 | The member LYVE_BITS_INNAME has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
12 | The member LYVE_BITS_INVAL has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
13 | The member LYVE_CIRC_FEATURES has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
14 | The member LYVE_CIRC_IMPORTS has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
15 | The member LYVE_CIRC_INCLUDES has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
16 | The member LYVE_CIRC_LEAFREFS has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
17 | The member LYVE_DUPID has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
18 | The member LYVE_DUPLEAFLIST has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
19 | The member LYVE_DUPLIST has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
20 | The member LYVE_ENUM_INNAME has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
21 | The member LYVE_ENUM_INVAL has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
22 | The member LYVE_ENUM_WS has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
23 | The member LYVE_INATTR has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
24 | The member LYVE_INCHAR has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
25 | The member LYVE_INELEM has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
26 | The member LYVE_INMETA has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
27 | The member LYVE_INMOD has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
28 | The member LYVE_INORDER has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
29 | The member LYVE_INPRED has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
30 | The member LYVE_INREGEX has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
31 | The member LYVE_INRESOLV has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
32 | The member LYVE_INSTATUS has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
33 | The member LYVE_INVAL has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
34 | The member LYVE_INVER has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
35 | The member LYVE_INWHEN has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
36 | The member LYVE_KEY_CONFIG has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
37 | The member LYVE_KEY_DUP has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
38 | The member LYVE_KEY_MISS has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
39 | The member LYVE_KEY_NLEAF has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
40 | The member LYVE_KEY_TYPE has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
41 | The member LYVE_MCASEDATA has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
42 | The member LYVE_MISSARG has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
43 | The member LYVE_MISSATTR has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
44 | The member LYVE_MISSELEM has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
45 | The member LYVE_NOCONSTR has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
46 | The member LYVE_NOLEAFREF has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
47 | The member LYVE_NOMANDCHOICE has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
48 | The member LYVE_NOMAX has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
49 | The member LYVE_NOMIN has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
50 | The member LYVE_NOMUST has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
51 | The member LYVE_NOREQINS has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
52 | The member LYVE_NORESOLV has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
53 | The member LYVE_NOUNIQ has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
54 | The member LYVE_NOWHEN has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
55 | The member LYVE_OBSDATA has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
56 | The member LYVE_PATH_EXISTS has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
57 | The member LYVE_PATH_INCHAR has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
58 | The member LYVE_PATH_INIDENTREF has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
59 | The member LYVE_PATH_INKEY has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
60 | The member LYVE_PATH_INMOD has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
61 | The member LYVE_PATH_INNODE has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
62 | The member LYVE_PATH_MISSKEY has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
63 | The member LYVE_PATH_MISSMOD has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
64 | The member LYVE_PATH_MISSPAR has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
65 | The member LYVE_PATH_PREDTOOMANY has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
66 | The member LYVE_SUBMODULE has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
67 | The member LYVE_TOOMANY has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
68 | The member LYVE_XPATH_DUMMY has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
69 | The member LYVE_XPATH_EOF has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
70 | The member LYVE_XPATH_INARGCOUNT has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
71 | The member LYVE_XPATH_INARGTYPE has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
72 | The member LYVE_XPATH_INCTX has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
73 | The member LYVE_XPATH_INFUNC has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
74 | The member LYVE_XPATH_INMOD has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
75 | The member LYVE_XPATH_INOP has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
76 | The member LYVE_XPATH_INTOK has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore.
77 | The member LYVE_XPATH_NOEND 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 (2.3%)
ly_err_clean ( struct ly_ctx* ctx, struct ly_err_item* eitem )
Field 'eitem.vecode' in 2nd parameter 'eitem' (pointer) is of type 'enum LY_VECODE'.
ly_err_first ( struct ly_ctx const* ctx )
Field 'retval.vecode' in the return value (pointer) is of type 'enum LY_VECODE'.
ly_err_print ( struct ly_err_item* eitem )
Field 'eitem.vecode' in 1st parameter 'eitem' (pointer) is of type 'enum LY_VECODE'.
ly_vecode ( struct ly_ctx const* ctx )
Return value is of type 'enum LY_VECODE'.
[+] struct ly_set 3

| Change | Effect
--- | --- | ---
1 | Type of field size has been changed from unsigned int to uint32_t. | Replacement of the field data type may indicate a change in the semantic meaning of the field.
2 | Field number has been renamed to count. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.
3 | Field set has been renamed to unnamed0. | Renaming of a field in data type may indicate a change in the semantic meaning of the field.

[+] affected symbols: 8 (4.6%)
ly_set_add ( struct ly_set* set, void* node, int options )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_clean ( struct ly_set* set )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_contains ( struct ly_set const* set, void* node )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_dup ( struct ly_set const* set )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_free ( struct ly_set* set )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options )
2nd parameter 'src' (pointer) has base type 'struct ly_set'.
ly_set_rm ( struct ly_set* set, void* node )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_rm_index ( struct ly_set* set, unsigned int index )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
[+] typedef ly_module_imp_clb 1

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

[+] affected symbols: 2 (1.1%)
ly_ctx_get_module_imp_clb ( struct ly_ctx const* ctx, void** user_data )
Return value is of type 'ly_module_imp_clb'.
ly_ctx_set_module_imp_clb ( struct ly_ctx* ctx, char const*(*clb)(char const*, char const*, char const*, char const*, void*, LYS_INFORMAT*, void(**)(void*, void*)), void* user_data )
2nd parameter 'clb' is of type 'ly_module_imp_clb'.
tree_data.h
[+] struct lyd_node 5

| Change | Effect
--- | --- | ---
1 | Field meta 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 72 bytes to 48 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
3 | Base type of field parent has been changed from struct lyd_node (72 bytes) to struct lyd_node_inner (64 bytes). | Possible access of applications to incorrect memory through the pointer.
4 | Base type of field schema has been changed from struct lys_node (112 bytes) to struct lysc_node (88 bytes). | Possible access of applications to incorrect memory through the pointer.
5 | Field flags has been added to this type. | This field will not be initialized by old clients. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.

[+] affected symbols: 9 (5.2%)
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match )
1st parameter 'siblings' (pointer) has base type 'struct lyd_node'.
lyd_first_sibling ( struct lyd_node* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_list_pos ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_path ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options )
3rd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
tree_schema.h
[+] enum LYS_OUTFORMAT 2

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

[+] affected symbols: 5 (2.9%)
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
4th parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
[+] struct lys_module 2

| Change | Effect
--- | --- | ---
1 | Size of this type has been changed from 184 bytes to 128 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.
2 | Size of field latest_revision has been changed from 1 bit to 1 byte. | Previous accesses of applications and library functions to this field may be broken.

[+] affected symbols: 8 (4.6%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
to the top

## Problems with Symbols, Low Severity 57

dict.h, libyang.so.1.9.19
[+] lydict_insert ( struct ly_ctx* ctx, char const* value, size_t len ) 1
⇣
lydict_insert ( struct ly_ctx const* ctx, char const* value, size_t len, char const** str_p )

| 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.

[+] lydict_insert_zc ( struct ly_ctx* ctx, char* value ) 1
⇣
lydict_insert_zc ( struct ly_ctx const* ctx, char* value, char const** str_p )

| 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.

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

| 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.

libyang.h, libyang.so.1.9.19
[+] ly_ctx_destroy ( struct ly_ctx* ctx, void(*private_destructor)(struct lys_node const*, void*) ) 1
⇣
ly_ctx_destroy ( struct ly_ctx* ctx, void(*private_destructor)(struct lysc_node const*, void*) )

| Change | Effect
--- | --- | ---
1 | Base type of 2nd parameter private_destructor has been changed from void(*)(struct lys_node const*, void*) to void(*)(struct lysc_node const*, void*). | Replacement of parameter base type may indicate a change in its semantic meaning.

[+] ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from struct lys_module const* to struct lys_module*. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx ) 1
⇣
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )

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

[+] ly_ctx_get_options ( struct ly_ctx* ctx ) 1
⇣
ly_ctx_get_options ( struct ly_ctx const* ctx )

| 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.

[+] ly_ctx_internal_modules_count ( struct ly_ctx* ctx ) 2
⇣
ly_ctx_internal_modules_count ( struct ly_ctx const* ctx )

| 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.
2 | Type of return value has been changed from unsigned int to uint32_t. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_ctx_set_searchdir ( struct ly_ctx* ctx, char const* search_dir ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_get_log_clb ( ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from void(*)(LY_LOG_LEVEL, char const*, char const*) to ly_log_clb. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_log_options ( int opts ) 2
⇣
ly_log_options ( uint32_t opts )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter opts has been changed from int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to uint32_t. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_set_add ( struct ly_set* set, void* node, int options ) 2
⇣
ly_set_add ( struct ly_set* set, void* object, ly_bool list, uint32_t* index_p )

| Change | Effect
--- | --- | ---
1 | 2nd parameter node has been renamed to object. | Renaming of a parameter may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_set_contains ( struct ly_set const* set, void* node ) 1
⇣
ly_set_contains ( struct ly_set const* set, void* object, uint32_t* index_p )

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

[+] ly_set_log_clb ( void(*clb)(LY_LOG_LEVEL, char const*, char const*), int path ) 1
⇣
ly_set_log_clb ( ly_log_clb clb, ly_bool path )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter clb has been changed from void(*)(LY_LOG_LEVEL, char const*, char const*) to ly_log_clb. | Replacement of parameter data type may indicate a change in its semantic meaning.

[+] ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_set_rm ( struct ly_set* set, void* node ) 2
⇣
ly_set_rm ( struct ly_set* set, void* object, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | 2nd parameter node has been renamed to object. | Renaming of a parameter may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] ly_set_rm_index ( struct ly_set* set, unsigned int index ) 2
⇣
ly_set_rm_index ( struct ly_set* set, uint32_t index, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter index has been changed from unsigned int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

tree_data.h, libyang.so.1.9.19
[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_first_sibling ( struct lyd_node* node ) 1
⇣
lyd_first_sibling ( struct lyd_node const* node )

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

[+] lyd_insert_after ( struct lyd_node* sibling, struct lyd_node* node ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_insert_before ( struct lyd_node* sibling, struct lyd_node* node ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_insert_sibling ( struct lyd_node** sibling, struct lyd_node* node ) 2
⇣
lyd_insert_sibling ( struct lyd_node* sibling, struct lyd_node* node, struct lyd_node** first )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter sibling has been changed from struct lyd_node** to struct lyd_node*. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_list_pos ( struct lyd_node const* node ) 2
⇣
lyd_list_pos ( struct lyd_node const* instance )

| Change | Effect
--- | --- | ---
1 | 1st parameter node has been renamed to instance. | Renaming of a parameter may indicate a change in its semantic meaning.
2 | Type of return value has been changed from unsigned int to uint32_t. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_new_path ( struct lyd_node* data_tree, struct ly_ctx const* ctx, char const* path, void* value, enum LYD_ANYDATA_VALUETYPE value_type, int options ) 5
⇣
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 )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter value has been changed from void* to char const*. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of 5th parameter value_type has been changed from enum LYD_ANYDATA_VALUETYPE to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
3 | 1st parameter data_tree has been renamed to parent. | Renaming of a parameter may indicate a change in its semantic meaning.
4 | 5th parameter value_type has been renamed to options. | Renaming of a parameter may indicate a change in its semantic meaning.
5 | 6th parameter options has been renamed to node. | Renaming of a parameter may indicate a change in its semantic meaning.

[+] lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 4
⇣
lyd_print_clb ( ly_write_clb writeclb, void* user_data, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter options has been changed from int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of 1st parameter writeclb has been changed from ssize_t(*)(void*, void const*, size_t) to ly_write_clb. | Replacement of parameter data type may indicate a change in its semantic meaning.
3 | 2nd parameter arg has been renamed to user_data. | Renaming of a parameter may indicate a change in its semantic meaning.
4 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

tree_schema.h, libyang.so.1.9.19
[+] lys_getnext ( struct lys_node const* last, struct lys_node const* parent, struct lys_module const* module, int options ) 1
⇣
lys_getnext ( struct lysc_node const* last, struct lysc_node const* parent, struct lysc_module const* module, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Replacement of parameter data type may indicate a change in its semantic meaning.

[+] lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 3
⇣
lys_print_clb ( ly_write_clb writeclb, void* user_data, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter writeclb has been changed from ssize_t(*)(void*, void const*, size_t) to ly_write_clb. | Replacement of parameter data type may indicate a change in its semantic meaning.
2 | 2nd parameter arg has been renamed to user_data. | Renaming of a parameter may indicate a change in its semantic meaning.
3 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lys_search_localfile ( char const*const* searchpaths, int cwd, char const* name, char const* revision, char** localfile, LYS_INFORMAT* format ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

[+] lys_set_implemented ( struct lys_module const* module ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from int to enum LY_ERR. | Replacement of return type may indicate a change in its semantic meaning.

to the top

## Other Changes in Data Types 7

libyang.h
[+] enum LY_ERR 6

| Change | Effect
--- | --- | ---
1 | The member LY_EDENIED with value 8 has been added. | No effect.
2 | The member LY_EEXIST with value 4 has been added. | No effect.
3 | The member LY_EINCOMPLETE with value 9 has been added. | No effect.
4 | The member LY_ENOT with value 10 has been added. | No effect.
5 | The member LY_ENOTFOUND with value 5 has been added. | No effect.
6 | The member LY_EOTHER with value 11 has been added. | No effect.

[+] affected symbols: 3 (1.7%)
ly_err_clean ( struct ly_ctx* ctx, struct ly_err_item* eitem )
Field 'eitem.no' in 2nd parameter 'eitem' (pointer) is of type 'enum LY_ERR'.
ly_err_first ( struct ly_ctx const* ctx )
Field 'retval.no' in the return value (pointer) is of type 'enum LY_ERR'.
ly_err_print ( struct ly_err_item* eitem )
Field 'eitem.no' in 1st parameter 'eitem' (pointer) is of type 'enum LY_ERR'.
tree_schema.h
[+] enum LYS_OUTFORMAT 1

| Change | Effect
--- | --- | ---
1 | The member LYS_OUT_YANG_COMPILED with value 2 has been added. | No effect.

[+] affected symbols: 5 (2.9%)
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
4th parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
to the top

## Header Files 7

dict.h
extensions.h
libyang.h
tree_data.h
tree_schema.h
user_types.h
xml.h
to the top

## Source Files 11

common.c
context.c
hash_table.c
log.c
parser_lyb.c
parser_xml.c
plugins.c
printer.c
tree_data.c
tree_schema.c
xml.c
to the top

## Objects 1

libyang.so.1.9.19
to the top

## Test Info

Module Name | libyang.so
Version #1 | 1.9.19
Version #2 | 2.0.0
Arch | x86_64
Subject | Source Compatibility

## Test Results

Total Header Files | 7
Total Source Files | 11
Total Objects | 1
Total Symbols / Types | 174 / 22
Compatibility | 14.1%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 154
Removed Symbols | High | 114
Problems with Data Types | High | 112
Medium | 2
Low | 9
Problems with Symbols | High | 13
Medium | 47
Low | 52
Problems with Constants | Low | 0
Other Changes in Data Types | - | 24
Other Changes in Symbols | - | 10

## Added Symbols 154

context.h
ly_ctx_get_module_implemented ( struct ly_ctx const* ctx, char const* name )
ly_ctx_get_module_implemented_ns ( struct ly_ctx const* ctx, char const* ns )
ly_ctx_get_module_latest ( struct ly_ctx const* ctx, char const* name )
ly_ctx_get_module_latest_ns ( struct ly_ctx const* ctx, char const* ns )
ly_ctx_get_module_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision )
ly_ctx_get_yanglib_data ( struct ly_ctx const* ctx, struct lyd_node** root_p )
ly_ctx_get_yanglib_id ( struct ly_ctx const* ctx )
ly_ctx_reset_latests ( struct ly_ctx* ctx )
ly_ctx_set_options ( struct ly_ctx* ctx, uint16_t option )
ly_ctx_unset_options ( struct ly_ctx* ctx, uint16_t option )
ly_ctx_unset_searchdir ( struct ly_ctx* ctx, char const* value )
ly_ctx_unset_searchdir_last ( struct ly_ctx* ctx, uint32_t count )
in.h
ly_in_fd ( struct ly_in* in, int fd )
ly_in_file ( struct ly_in* in, FILE* f )
ly_in_filepath ( struct ly_in* in, char const* filepath, size_t len )
ly_in_free ( struct ly_in* in, ly_bool destroy )
ly_in_memory ( struct ly_in* in, char const* str )
ly_in_new_fd ( int fd, struct ly_in** in )
ly_in_new_file ( FILE* f, struct ly_in** in )
ly_in_new_filepath ( char const* filepath, size_t len, struct ly_in** in )
ly_in_new_memory ( char const* str, struct ly_in** in )
ly_in_parsed ( struct ly_in const* in )
ly_in_reset ( struct ly_in* in )
ly_in_type ( struct ly_in const* in )
log.h
ly_err_last ( struct ly_ctx const* ctx )
ly_errcode ( struct ly_ctx const* ctx )
ly_log_dbg_groups ( uint32_t dbg_groups )
ly_log_level ( enum LY_LOG_LEVEL level )
out.h
ly_out_clb ( struct ly_out* out, ly_write_clb writeclb )
ly_out_clb_arg ( struct ly_out* out, void* arg )
ly_out_fd ( struct ly_out* out, int fd )
ly_out_file ( struct ly_out* out, FILE* f )
ly_out_filepath ( struct ly_out* out, char const* filepath )
ly_out_free ( struct ly_out* out, void(*clb_arg_destructor)(void*), ly_bool destroy )
ly_out_new_clb ( ly_write_clb writeclb, void* user_data, struct ly_out** out )
ly_out_new_fd ( int fd, struct ly_out** out )
ly_out_new_file ( FILE* f, struct ly_out** out )
ly_out_new_filepath ( char const* filepath, struct ly_out** out )
ly_out_new_memory ( char** strp, size_t size, struct ly_out** out )
ly_out_printed ( struct ly_out const* out )
ly_out_reset ( struct ly_out* out )
ly_out_type ( struct ly_out const* out )
ly_print ( struct ly_out* out, char const* format, ... )
ly_print_flush ( struct ly_out* out )
ly_write ( struct ly_out* out, char const* buf, size_t len )
parser_data.h
lyd_parse_data ( struct ly_ctx const* ctx, struct ly_in* in, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_data_fd ( struct ly_ctx const* ctx, int fd, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_data_mem ( struct ly_ctx const* ctx, char const* data, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_data_path ( struct ly_ctx const* ctx, char const* path, enum LYD_FORMAT format, uint32_t parse_options, uint32_t validate_options, struct lyd_node** tree )
lyd_parse_notif ( struct ly_ctx const* ctx, struct ly_in* in, enum LYD_FORMAT format, struct lyd_node** tree, struct lyd_node** ntf )
lyd_parse_reply ( struct lyd_node const* request, struct ly_in* in, enum LYD_FORMAT format, struct lyd_node** tree, struct lyd_node** op )
lyd_parse_rpc ( struct ly_ctx const* ctx, struct ly_in* in, enum LYD_FORMAT format, struct lyd_node** tree, struct lyd_node** op )
lyd_validate_all ( struct lyd_node** tree, struct ly_ctx const* ctx, uint32_t val_opts, struct lyd_node** diff )
lyd_validate_module ( struct lyd_node** tree, struct lys_module const* module, uint32_t val_opts, struct lyd_node** diff )
lyd_validate_op ( struct lyd_node* op_tree, struct lyd_node const* tree, enum LYD_VALIDATE_OP op, struct lyd_node** diff )
parser_schema.h
lys_parse ( struct ly_ctx* ctx, struct ly_in* in, enum LYS_INFORMAT format, char const** features, struct lys_module const** module )
plugins_types.h
ly_builtin_type_plugins [data]
ly_err_free ( void* ptr )
ly_err_new ( enum LY_LOG_LEVEL level, enum LY_ERR no, enum LY_VECODE vecode, char* msg, char* path, char* apptag )
ly_type_identity_isderived ( struct lysc_ident* base, struct lysc_ident* der )
ly_type_parse_dec64 ( uint8_t fraction_digits, char const* value, size_t value_len, int64_t* ret, struct ly_err_item** err )
ly_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 )
ly_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 )
ly_type_print_get_prefix ( struct lys_module const* mod, enum LY_PREFIX_FORMAT format, void* prefix_data )
ly_type_store_resolve_prefix ( struct ly_ctx const* ctx, char const* prefix, size_t prefix_len, enum LY_PREFIX_FORMAT format, void* prefix_data )
ly_type_validate_patterns ( struct lysc_pattern** patterns, char const* str, size_t str_len, struct ly_err_item** err )
ly_type_validate_range ( enum LY_DATA_TYPE basetype, struct lysc_range* range, int64_t value, char const* strval, struct ly_err_item** err )
lysc_prefixes_compile ( char const* str, size_t str_len, struct lysp_module const* prefix_mod, struct lysc_prefix** prefixes )
lysc_prefixes_dup ( struct lysc_prefix const* orig, struct lysc_prefix** dup )
lysc_prefixes_free ( struct lysc_prefix* prefixes )
printer_data.h
lyd_print_all ( struct ly_out* out, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )
lyd_print_tree ( struct ly_out* out, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )
printer_schema.h
lys_print_module ( struct ly_out* out, struct lys_module const* module, enum LYS_OUTFORMAT format, size_t UNUSED_line_length, uint32_t options )
lys_print_node ( struct ly_out* out, struct lysc_node const* node, enum LYS_OUTFORMAT format, size_t UNUSED_line_length, uint32_t options )
lys_print_submodule ( struct ly_out* out, struct lys_module const* module, struct lysp_submodule const* submodule, enum LYS_OUTFORMAT format, size_t UNUSED_line_length, uint32_t options )
set.h
ly_set_erase ( struct ly_set* set, void(*destructor)(void*) )
tree_data.h
lyd_any_copy_value ( struct lyd_node* trg, union lyd_any_value const* value, enum LYD_ANYDATA_VALUETYPE value_type )
lyd_change_meta ( struct lyd_meta* meta, char const* val_str )
lyd_change_term ( struct lyd_node* term, char const* val_str )
lyd_child ( struct lyd_node const* node )
lyd_child_no_keys ( struct lyd_node const* node )
lyd_compare_meta ( struct lyd_meta const* meta1, struct lyd_meta const* meta2 )
lyd_compare_siblings ( struct lyd_node const* node1, struct lyd_node const* node2, uint32_t options )
lyd_compare_single ( struct lyd_node const* node1, struct lyd_node const* node2, uint32_t options )
lyd_diff_apply_all ( struct lyd_node** data, struct lyd_node const* diff )
lyd_diff_apply_module ( struct lyd_node** data, struct lyd_node const* diff, struct lys_module const* mod, lyd_diff_cb diff_cb, void* cb_data )
lyd_diff_merge_all ( struct lyd_node** diff, struct lyd_node const* src_diff )
lyd_diff_merge_module ( struct lyd_node** diff, struct lyd_node const* src_diff, struct lys_module const* mod, lyd_diff_cb diff_cb, void* cb_data )
lyd_diff_merge_tree ( struct lyd_node** diff_first, struct lyd_node* diff_parent, struct lyd_node const* src_sibling, lyd_diff_cb diff_cb, void* cb_data )
lyd_diff_reverse_all ( struct lyd_node const* src_diff, struct lyd_node** diff )
lyd_diff_siblings ( struct lyd_node const* first, struct lyd_node const* second, uint16_t options, struct lyd_node** diff )
lyd_diff_tree ( struct lyd_node const* first, struct lyd_node const* second, uint16_t options, struct lyd_node** diff )
lyd_dup_meta_single ( struct lyd_meta const* meta, struct lyd_node* node, struct lyd_meta** dup )
lyd_dup_siblings ( struct lyd_node const* node, struct lyd_node_inner* parent, uint32_t options, struct lyd_node** dup )
lyd_dup_single ( struct lyd_node const* node, struct lyd_node_inner* parent, uint32_t options, struct lyd_node** dup )
lyd_find_meta ( struct lyd_meta const* first, struct lys_module const* module, char const* name )
lyd_find_sibling_first ( struct lyd_node const* siblings, struct lyd_node const* target, struct lyd_node** match )
lyd_find_xpath ( struct lyd_node const* ctx_node, char const* xpath, struct ly_set** set )
lyd_free_all ( struct lyd_node* node )
lyd_free_attr_siblings ( struct ly_ctx const* ctx, struct lyd_attr* attr )
lyd_free_attr_single ( struct ly_ctx const* ctx, struct lyd_attr* attr )
lyd_free_meta_siblings ( struct lyd_meta* meta )
lyd_free_meta_single ( struct lyd_meta* meta )
lyd_free_siblings ( struct lyd_node* node )
lyd_free_tree ( struct lyd_node* node )
lyd_insert_child ( struct lyd_node* parent, struct lyd_node* node )
lyd_is_default ( struct lyd_node const* node )
lyd_merge_siblings ( struct lyd_node** target, struct lyd_node const* source, uint16_t options )
lyd_merge_tree ( struct lyd_node** target, struct lyd_node const* source, uint16_t options )
lyd_new_any ( struct lyd_node* parent, struct lys_module const* module, char const* name, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, ly_bool output, struct lyd_node** node )
lyd_new_attr ( struct lyd_node* parent, char const* module_name, char const* name, char const* val_str, struct lyd_attr** attr )
lyd_new_implicit_all ( struct lyd_node** tree, struct ly_ctx const* ctx, uint32_t implicit_options, struct lyd_node** diff )
lyd_new_implicit_module ( struct lyd_node** tree, struct lys_module const* module, uint32_t implicit_options, struct lyd_node** diff )
lyd_new_implicit_tree ( struct lyd_node* tree, uint32_t implicit_options, struct lyd_node** diff )
lyd_new_inner ( struct lyd_node* parent, struct lys_module const* module, char const* name, ly_bool output, struct lyd_node** node )
lyd_new_list ( struct lyd_node* parent, struct lys_module const* module, char const* name, ly_bool output, struct lyd_node** node, ... )
lyd_new_list2 ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* keys, ly_bool output, struct lyd_node** node )
lyd_new_meta ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str, struct lyd_meta** meta )
lyd_new_opaq ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* name, char const* value, char const* module_name, struct lyd_node** node )
lyd_new_path2 ( struct lyd_node* parent, struct ly_ctx const* ctx, char const* path, void const* value, enum LYD_ANYDATA_VALUETYPE value_type, uint32_t options, struct lyd_node** new_parent, struct lyd_node** new_node )
lyd_new_term ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str, ly_bool output, struct lyd_node** node )
lyd_owner_module ( struct lyd_node const* node )
lyd_parent ( struct lyd_node const* node )
lyd_target ( struct ly_path const* path, struct lyd_node const* tree )
lyd_unlink_tree ( struct lyd_node* node )
lyd_value_compare ( struct lyd_node_term const* node, char const* value, size_t value_len )
lyd_value_validate ( struct ly_ctx const* ctx, struct lyd_node_term const* node, char const* value, size_t value_len, struct lyd_node const* tree, struct lysc_type const** realtype )
tree_schema.h
lyext_parent2str ( enum LYEXT_PARENT type )
lys_feature_value ( struct lys_module const* module, char const* feature )
lys_find_child ( struct lysc_node const* parent, struct lys_module const* module, char const* name, size_t name_len, uint16_t nodetype, uint32_t options )
lys_find_expr_atoms ( struct lysc_node const* ctx_node, struct lys_module const* cur_mod, struct lyxp_expr const* expr, struct lysc_prefix const* prefixes, uint32_t options, struct ly_set** set )
lys_find_lypath_atoms ( struct ly_path const* path, struct ly_set** set )
lys_find_path_atoms ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* path, ly_bool output, struct ly_set** set )
lys_find_xpath ( struct lysc_node const* ctx_node, char const* xpath, uint32_t options, struct ly_set** set )
lys_find_xpath_atoms ( struct lysc_node const* ctx_node, char const* xpath, uint32_t options, struct ly_set** set )
lys_nodetype2str ( uint16_t nodetype )
lys_value_validate ( struct ly_ctx const* ctx, struct lysc_node const* node, char const* value, size_t value_len )
lysc_iffeature_value ( struct lysc_iffeature const* iff )
lysc_module_dfs_full ( struct lys_module const* mod, lysc_dfs_clb dfs_clb, void* data )
lysc_node_actions ( struct lysc_node const* node )
lysc_node_children ( struct lysc_node const* node, uint16_t flags )
lysc_node_children_full ( struct lysc_node const* node, uint16_t flags )
lysc_node_notifs ( struct lysc_node const* node )
lysc_node_parent_full ( struct lysc_node const* node )
lysc_path ( struct lysc_node const* node, enum LYSC_PATH_TYPE pathtype, char* buffer, size_t buflen )
lysc_set_private ( struct lysc_node const* node, void* priv, void** prev_priv_p )
lysc_tree_dfs_full ( struct lysc_node const* root, lysc_dfs_clb dfs_clb, void* data )
lysp_feature_next ( struct lysp_feature const* last, struct lysp_module const* pmod, uint32_t* idx )
lysp_node_actions ( struct lysp_node const* node )
lysp_node_children ( struct lysp_node const* node )
lysp_node_groupings ( struct lysp_node const* node )
lysp_node_notifs ( struct lysp_node const* node )
lysp_node_typedefs ( struct lysp_node const* node )
lyxp_get_expr ( struct lyxp_expr const* path )
to the top

## Removed Symbols 114

extensions.h
lyext_vlog ( struct ly_ctx const* ctx, enum LY_VECODE vecode, char const* plugin, char const* function, enum LYEXT_VLOG_ELEM elem_type, void const* elem, char const* format, ... )
lys_iffeature_free ( struct ly_ctx* ctx, struct lys_iffeature* iffeature, uint8_t iffeature_size, int shallow, void(*private_destructor)(struct lys_node const*, void*) )
libyang.h
ly_ctx_clean ( struct ly_ctx* ctx, void(*private_destructor)(struct lys_node const*, void*) )
ly_ctx_find_path ( struct ly_ctx* ctx, char const* path )
ly_ctx_get_disabled_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
ly_ctx_get_module_by_ns ( struct ly_ctx const* ctx, char const* ns, char const* revision, int implemented )
ly_ctx_get_module_data_clb ( struct ly_ctx const* ctx, void** user_data )
ly_ctx_get_module_older ( struct ly_ctx const* ctx, struct lys_module const* module )
ly_ctx_get_node ( struct ly_ctx const* ctx, struct lys_node const* start, char const* nodeid, int output )
ly_ctx_get_submodule ( struct ly_ctx const* ctx, char const* module, char const* revision, char const* submodule, char const* sub_revision )
ly_ctx_get_submodule2 ( struct lys_module const* main_module, char const* submodule )
ly_ctx_info ( struct ly_ctx* ctx )
ly_ctx_new_ylmem ( char const* search_dir, char const* data, enum LYD_FORMAT format, int options )
ly_ctx_new_ylpath ( char const* search_dir, char const* path, enum LYD_FORMAT format, int options )
ly_ctx_remove_module ( struct lys_module const* module, void(*private_destructor)(struct lys_node const*, void*) )
ly_ctx_set_allimplemented ( struct ly_ctx* ctx )
ly_ctx_set_disable_searchdir_cwd ( struct ly_ctx* ctx )
ly_ctx_set_disable_searchdirs ( struct ly_ctx* ctx )
ly_ctx_set_module_data_clb ( struct ly_ctx* ctx, ly_module_data_clb clb, void* user_data )
ly_ctx_set_prefer_searchdirs ( struct ly_ctx* ctx )
ly_ctx_set_trusted ( struct ly_ctx* ctx )
ly_ctx_unset_allimplemented ( struct ly_ctx* ctx )
ly_ctx_unset_disable_searchdir_cwd ( struct ly_ctx* ctx )
ly_ctx_unset_disable_searchdirs ( struct ly_ctx* ctx )
ly_ctx_unset_prefer_searchdirs ( struct ly_ctx* ctx )
ly_ctx_unset_searchdirs ( struct ly_ctx* ctx, int index )
ly_ctx_unset_trusted ( struct ly_ctx* ctx )
ly_errno_glob_address ( )
ly_path_data2schema ( struct ly_ctx* ctx, char const* data_path )
ly_path_xml2json ( struct ly_ctx* ctx, char const* xml_path, struct lyxml_elem* xml )
ly_verb ( enum LY_LOG_LEVEL level )
ly_verb_dbg ( int dbg_groups )
tree_data.h
lyd_change_leaf ( struct lyd_node_leaf_list* leaf, char const* val_str )
lyd_dec64_to_double ( struct lyd_node const* node )
lyd_diff ( struct lyd_node* first, struct lyd_node* second, int options )
lyd_dup ( struct lyd_node const* node, int options )
lyd_dup_to_ctx ( struct lyd_node const* node, int options, struct ly_ctx* ctx )
lyd_dup_withsiblings ( struct lyd_node const* node, int options )
lyd_find_instance ( struct lyd_node const* data, struct lys_node const* schema )
lyd_find_path ( struct lyd_node const* ctx_node, char const* path )
lyd_find_sibling ( struct lyd_node const* siblings, struct lyd_node const* target, struct lyd_node** match )
lyd_find_sibling_set ( struct lyd_node const* siblings, struct lyd_node const* target, struct ly_set** set )
lyd_free ( struct lyd_node* node )
lyd_free_attr ( struct ly_ctx* ctx, struct lyd_node* parent, struct lyd_attr* attr, int recursive )
lyd_free_diff ( struct lyd_difflist* diff )
lyd_free_val_diff ( struct lyd_difflist* diff )
lyd_free_withsiblings ( struct lyd_node* node )
lyd_insert ( struct lyd_node* parent, struct lyd_node* node )
lyd_insert_attr ( struct lyd_node* parent, struct lys_module const* mod, char const* name, char const* value )
lyd_leaf_type ( struct lyd_node_leaf_list const* leaf )
lyd_merge ( struct lyd_node* target, struct lyd_node const* source, int options )
lyd_merge_to_ctx ( struct lyd_node** trg, struct lyd_node const* src, int options, struct ly_ctx* ctx )
lyd_new ( struct lyd_node* parent, struct lys_module const* module, char const* name )
lyd_new_anydata ( struct lyd_node* parent, struct lys_module const* module, char const* name, void* value, enum LYD_ANYDATA_VALUETYPE value_type )
lyd_new_leaf ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str )
lyd_new_output ( struct lyd_node* parent, struct lys_module const* module, char const* name )
lyd_new_output_anydata ( struct lyd_node* parent, struct lys_module const* module, char const* name, void* value, enum LYD_ANYDATA_VALUETYPE value_type )
lyd_new_output_leaf ( struct lyd_node* parent, struct lys_module const* module, char const* name, char const* val_str )
lyd_new_yangdata ( struct lys_module const* module, char const* name_template, char const* name )
lyd_node_module ( struct lyd_node const* node )
lyd_node_should_print ( struct lyd_node const* node, int options )
lyd_parse_fd ( struct ly_ctx* ctx, int fd, enum LYD_FORMAT format, int options, ... )
lyd_parse_mem ( struct ly_ctx* ctx, char const* data, enum LYD_FORMAT format, int options, ... )
lyd_parse_path ( struct ly_ctx* ctx, char const* path, enum LYD_FORMAT format, int options, ... )
lyd_parse_xml ( struct ly_ctx* ctx, struct lyxml_elem** root, int options, ... )
lyd_schema_sort ( struct lyd_node* sibling, int recursive )
lyd_unlink ( struct lyd_node* node )
lyd_validate ( struct lyd_node** node, int options, void* var_arg, ... )
lyd_validate_modules ( struct lyd_node** node, struct lys_module const** modules, int mod_count, int options, ... )
lyd_validate_value ( struct lys_node* node, char const* value )
lyd_value_type ( struct lys_node* node, char const* value, struct lys_type** type )
lyd_wd_default ( struct lyd_node_leaf_list* node )
tree_schema.h
ly_clean_plugins ( )
ly_get_loaded_plugins ( )
ly_load_plugins ( )
ly_register_exts ( struct lyext_plugin_list* plugin, char const* log_name )
ly_register_types ( struct lytype_plugin_list* plugin, char const* log_name )
lys_data_path ( struct lys_node const* node )
lys_data_path_pattern ( struct lys_node const* node, char const* placeholder )
lys_ext_complex_get_substmt ( enum LY_STMT stmt, struct lys_ext_instance_complex* ext, struct lyext_substmt** info )
lys_ext_instance_presence ( struct lys_ext* def, struct lys_ext_instance** ext, uint8_t ext_size )
lys_ext_instance_substmt ( struct lys_ext_instance const* ext )
lys_features_disable ( struct lys_module const* module, char const* feature )
lys_features_disable_force ( struct lys_module const* module, char const* feature )
lys_features_enable ( struct lys_module const* module, char const* feature )
lys_features_enable_force ( struct lys_module const* module, char const* feature )
lys_features_list ( struct lys_module const* module, uint8_t** states )
lys_features_state ( struct lys_module const* module, char const* feature )
lys_getnext_union_type ( struct lys_type const* last, struct lys_type const* type )
lys_iffeature_value ( struct lys_iffeature const* iff )
lys_implemented_module ( struct lys_module const* mod )
lys_is_disabled ( struct lys_node const* node, int recursive )
lys_is_key ( struct lys_node_leaf const* node, uint8_t* index )
lys_main_module ( struct lys_module const* module )
lys_node_module ( struct lys_node const* node )
lys_node_xpath_atomize ( struct lys_node const* node, int options )
lys_parent ( struct lys_node const* node )
lys_path ( struct lys_node const* node, int options )
lys_set_disabled ( struct lys_module const* module )
lys_set_enabled ( struct lys_module const* module )
lys_set_private ( struct lys_node const* node, void* priv )
lys_xpath_atomize ( struct lys_node const* ctx_node, enum lyxp_node_type ctx_node_type, char const* expr, int options )
xml.h
lyxml_dup ( struct ly_ctx* ctx, struct lyxml_elem* root )
lyxml_free ( struct ly_ctx* ctx, struct lyxml_elem* elem )
lyxml_free_withsiblings ( struct ly_ctx* ctx, struct lyxml_elem* elem )
lyxml_get_attr ( struct lyxml_elem const* elem, char const* name, char const* ns )
lyxml_get_ns ( struct lyxml_elem const* elem, char const* prefix )
lyxml_parse_mem ( struct ly_ctx* ctx, char const* data, int options )
lyxml_parse_path ( struct ly_ctx* ctx, char const* filename, int options )
lyxml_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyxml_elem const* elem, int options )
lyxml_print_fd ( int fd, struct lyxml_elem const* elem, int options )
lyxml_print_file ( FILE* stream, struct lyxml_elem const* elem, int options )
lyxml_print_mem ( char** strp, struct lyxml_elem const* elem, int options )
lyxml_unlink ( struct ly_ctx* ctx, struct lyxml_elem* elem )
to the top

## Problems with Data Types, High Severity 112

libyang.h
[+] enum LY_VECODE 77

| Change | Effect
--- | --- | ---
1 | Name of member with value 1 has been changed from LYVE_XML_MISS to LYVE_SYNTAX. | Recompilation of a client program may be broken with the error message: 'LYVE_XML_MISS' was not declared in this scope.
2 | Name of member with value 10 has been changed from LYVE_MISSSTMT to LYVE_OTHER. | Recompilation of a client program may be broken with the error message: 'LYVE_MISSSTMT' was not declared in this scope.
3 | Name of member with value 2 has been changed from LYVE_XML_INVAL to LYVE_SYNTAX_YANG. | Recompilation of a client program may be broken with the error message: 'LYVE_XML_INVAL' was not declared in this scope.
4 | Name of member with value 3 has been changed from LYVE_XML_INCHAR to LYVE_SYNTAX_YIN. | Recompilation of a client program may be broken with the error message: 'LYVE_XML_INCHAR' was not declared in this scope.
5 | Name of member with value 4 has been changed from LYVE_EOF to LYVE_REFERENCE. | Recompilation of a client program may be broken with the error message: 'LYVE_EOF' was not declared in this scope.
6 | Name of member with value 5 has been changed from LYVE_INSTMT to LYVE_XPATH. | Recompilation of a client program may be broken with the error message: 'LYVE_INSTMT' was not declared in this scope.
7 | Name of member with value 6 has been changed from LYVE_INPAR to LYVE_SEMANTICS. | Recompilation of a client program may be broken with the error message: 'LYVE_INPAR' was not declared in this scope.
8 | Name of member with value 7 has been changed from LYVE_INID to LYVE_SYNTAX_XML. | Recompilation of a client program may be broken with the error message: 'LYVE_INID' was not declared in this scope.
9 | Name of member with value 8 has been changed from LYVE_INDATE to LYVE_SYNTAX_JSON. | Recompilation of a client program may be broken with the error message: 'LYVE_INDATE' was not declared in this scope.
10 | Name of member with value 9 has been changed from LYVE_INARG to LYVE_DATA. | Recompilation of a client program may be broken with the error message: 'LYVE_INARG' was not declared in this scope.
11 | The member LYVE_BITS_INNAME has been removed. | Recompilation of a client program may be broken.
12 | The member LYVE_BITS_INVAL has been removed. | Recompilation of a client program may be broken.
13 | The member LYVE_CIRC_FEATURES has been removed. | Recompilation of a client program may be broken.
14 | The member LYVE_CIRC_IMPORTS has been removed. | Recompilation of a client program may be broken.
15 | The member LYVE_CIRC_INCLUDES has been removed. | Recompilation of a client program may be broken.
16 | The member LYVE_CIRC_LEAFREFS has been removed. | Recompilation of a client program may be broken.
17 | The member LYVE_DUPID has been removed. | Recompilation of a client program may be broken.
18 | The member LYVE_DUPLEAFLIST has been removed. | Recompilation of a client program may be broken.
19 | The member LYVE_DUPLIST has been removed. | Recompilation of a client program may be broken.
20 | The member LYVE_ENUM_INNAME has been removed. | Recompilation of a client program may be broken.
21 | The member LYVE_ENUM_INVAL has been removed. | Recompilation of a client program may be broken.
22 | The member LYVE_ENUM_WS has been removed. | Recompilation of a client program may be broken.
23 | The member LYVE_INATTR has been removed. | Recompilation of a client program may be broken.
24 | The member LYVE_INCHAR has been removed. | Recompilation of a client program may be broken.
25 | The member LYVE_INELEM has been removed. | Recompilation of a client program may be broken.
26 | The member LYVE_INMETA has been removed. | Recompilation of a client program may be broken.
27 | The member LYVE_INMOD has been removed. | Recompilation of a client program may be broken.
28 | The member LYVE_INORDER has been removed. | Recompilation of a client program may be broken.
29 | The member LYVE_INPRED has been removed. | Recompilation of a client program may be broken.
30 | The member LYVE_INREGEX has been removed. | Recompilation of a client program may be broken.
31 | The member LYVE_INRESOLV has been removed. | Recompilation of a client program may be broken.
32 | The member LYVE_INSTATUS has been removed. | Recompilation of a client program may be broken.
33 | The member LYVE_INVAL has been removed. | Recompilation of a client program may be broken.
34 | The member LYVE_INVER has been removed. | Recompilation of a client program may be broken.
35 | The member LYVE_INWHEN has been removed. | Recompilation of a client program may be broken.
36 | The member LYVE_KEY_CONFIG has been removed. | Recompilation of a client program may be broken.
37 | The member LYVE_KEY_DUP has been removed. | Recompilation of a client program may be broken.
38 | The member LYVE_KEY_MISS has been removed. | Recompilation of a client program may be broken.
39 | The member LYVE_KEY_NLEAF has been removed. | Recompilation of a client program may be broken.
40 | The member LYVE_KEY_TYPE has been removed. | Recompilation of a client program may be broken.
41 | The member LYVE_MCASEDATA has been removed. | Recompilation of a client program may be broken.
42 | The member LYVE_MISSARG has been removed. | Recompilation of a client program may be broken.
43 | The member LYVE_MISSATTR has been removed. | Recompilation of a client program may be broken.
44 | The member LYVE_MISSELEM has been removed. | Recompilation of a client program may be broken.
45 | The member LYVE_NOCONSTR has been removed. | Recompilation of a client program may be broken.
46 | The member LYVE_NOLEAFREF has been removed. | Recompilation of a client program may be broken.
47 | The member LYVE_NOMANDCHOICE has been removed. | Recompilation of a client program may be broken.
48 | The member LYVE_NOMAX has been removed. | Recompilation of a client program may be broken.
49 | The member LYVE_NOMIN has been removed. | Recompilation of a client program may be broken.
50 | The member LYVE_NOMUST has been removed. | Recompilation of a client program may be broken.
51 | The member LYVE_NOREQINS has been removed. | Recompilation of a client program may be broken.
52 | The member LYVE_NORESOLV has been removed. | Recompilation of a client program may be broken.
53 | The member LYVE_NOUNIQ has been removed. | Recompilation of a client program may be broken.
54 | The member LYVE_NOWHEN has been removed. | Recompilation of a client program may be broken.
55 | The member LYVE_OBSDATA has been removed. | Recompilation of a client program may be broken.
56 | The member LYVE_PATH_EXISTS has been removed. | Recompilation of a client program may be broken.
57 | The member LYVE_PATH_INCHAR has been removed. | Recompilation of a client program may be broken.
58 | The member LYVE_PATH_INIDENTREF has been removed. | Recompilation of a client program may be broken.
59 | The member LYVE_PATH_INKEY has been removed. | Recompilation of a client program may be broken.
60 | The member LYVE_PATH_INMOD has been removed. | Recompilation of a client program may be broken.
61 | The member LYVE_PATH_INNODE has been removed. | Recompilation of a client program may be broken.
62 | The member LYVE_PATH_MISSKEY has been removed. | Recompilation of a client program may be broken.
63 | The member LYVE_PATH_MISSMOD has been removed. | Recompilation of a client program may be broken.
64 | The member LYVE_PATH_MISSPAR has been removed. | Recompilation of a client program may be broken.
65 | The member LYVE_PATH_PREDTOOMANY has been removed. | Recompilation of a client program may be broken.
66 | The member LYVE_SUBMODULE has been removed. | Recompilation of a client program may be broken.
67 | The member LYVE_TOOMANY has been removed. | Recompilation of a client program may be broken.
68 | The member LYVE_XPATH_DUMMY has been removed. | Recompilation of a client program may be broken.
69 | The member LYVE_XPATH_EOF has been removed. | Recompilation of a client program may be broken.
70 | The member LYVE_XPATH_INARGCOUNT has been removed. | Recompilation of a client program may be broken.
71 | The member LYVE_XPATH_INARGTYPE has been removed. | Recompilation of a client program may be broken.
72 | The member LYVE_XPATH_INCTX has been removed. | Recompilation of a client program may be broken.
73 | The member LYVE_XPATH_INFUNC has been removed. | Recompilation of a client program may be broken.
74 | The member LYVE_XPATH_INMOD has been removed. | Recompilation of a client program may be broken.
75 | The member LYVE_XPATH_INOP has been removed. | Recompilation of a client program may be broken.
76 | The member LYVE_XPATH_INTOK has been removed. | Recompilation of a client program may be broken.
77 | The member LYVE_XPATH_NOEND has been removed. | Recompilation of a client program may be broken.

[+] affected symbols: 4 (2.3%)
ly_err_clean ( struct ly_ctx* ctx, struct ly_err_item* eitem )
Field 'eitem.vecode' in 2nd parameter 'eitem' (pointer) is of type 'enum LY_VECODE'.
ly_err_first ( struct ly_ctx const* ctx )
Field 'retval.vecode' in the return value (pointer) is of type 'enum LY_VECODE'.
ly_err_print ( struct ly_err_item* eitem )
Field 'eitem.vecode' in 1st parameter 'eitem' (pointer) is of type 'enum LY_VECODE'.
ly_vecode ( struct ly_ctx const* ctx )
Return value is of type 'enum LY_VECODE'.
[+] struct ly_set 2

| Change | Effect
--- | --- | ---
1 | Field number has been renamed to count. | Recompilation of a client program may be broken with the error message: struct ly_set has no member named number.
2 | Field set has been renamed to unnamed0. | Recompilation of a client program may be broken with the error message: struct ly_set has no member named set.

[+] affected symbols: 8 (4.6%)
ly_set_add ( struct ly_set* set, void* node, int options )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_clean ( struct ly_set* set )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_contains ( struct ly_set const* set, void* node )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_dup ( struct ly_set const* set )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_free ( struct ly_set* set )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options )
2nd parameter 'src' (pointer) has base type 'struct ly_set'.
ly_set_rm ( struct ly_set* set, void* node )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
ly_set_rm_index ( struct ly_set* set, unsigned int index )
1st parameter 'set' (pointer) has base type 'struct ly_set'.
tree_data.h
[+] struct lyd_node 6

| Change | Effect
--- | --- | ---
1 | Field attr has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyd_node' has no member named 'attr'.
2 | Field child has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyd_node' has no member named 'child'.
3 | Field dflt has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyd_node' has no member named 'dflt'.
4 | Field ht has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyd_node' has no member named 'ht'.
5 | Field validity has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyd_node' has no member named 'validity'.
6 | Field when_status has been removed from this type. | Recompilation of a client program may be broken with the error message: 'struct lyd_node' has no member named 'when_status'.

[+] affected symbols: 9 (5.2%)
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match )
1st parameter 'siblings' (pointer) has base type 'struct lyd_node'.
lyd_first_sibling ( struct lyd_node* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_list_pos ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_path ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options )
3rd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
tree_schema.h
[+] enum LYS_OUTFORMAT 2

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

[+] affected symbols: 5 (2.9%)
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
4th parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
[+] struct lys_module 25

| Change | Effect
--- | --- | ---
1 | Field augment 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 'augment'.
2 | Field augment_size 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 'augment_size'.
3 | Field data 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 'data'.
4 | Field deviated 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 'deviated'.
5 | Field deviation 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 'deviation'.
6 | Field deviation_size 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 'deviation_size'.
7 | Field disabled 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 'disabled'.
8 | Field ext 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 'ext'.
9 | Field ext_size 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 'ext_size'.
10 | Field extensions 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 'extensions'.
11 | Field extensions_size 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 'extensions_size'.
12 | Field features 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 'features'.
13 | Field features_size 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 'features_size'.
14 | Field ident 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 'ident'.
15 | Field ident_size 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 'ident_size'.
16 | Field imp 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 'imp'.
17 | Field imp_size 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 'imp_size'.
18 | Field inc 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 'inc'.
19 | Field inc_size 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 'inc_size'.
20 | Field rev 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 'rev'.
21 | Field rev_size 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 'rev_size'.
22 | Field tpdf 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 'tpdf'.
23 | Field tpdf_size 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 'tpdf_size'.
24 | Field type 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 'type'.
25 | Field version 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 'version'.

[+] affected symbols: 8 (4.6%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
to the top

## Problems with Symbols, High Severity 13

libyang.h
[+] ly_set_add ( struct ly_set* set, void* node, int options ) 1
⇣
ly_set_add ( struct ly_set* set, void* object, ly_bool list, uint32_t* index_p )

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

[+] ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options ) 1
⇣
ly_set_merge ( struct ly_set* trg, struct ly_set* src, ly_bool list, void*(*duplicator)(void*) )

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

tree_data.h
[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match ) 1
⇣
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 )

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

tree_schema.h
[+] lys_find_path ( struct lys_module const* cur_module, struct lys_node const* cur_node, char const* path ) 4
⇣
lys_find_path ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* path, ly_bool output )

| 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.
2 | Parameter ctx_node of type struct lysc_node const* has been added to the calling stack at the middle position. | Recompilation of a client program may be broken.
3 | 1st middle parameter cur_module has been removed from the calling stack. | Recompilation of a client program may be broken.
4 | 2nd middle parameter cur_node has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_clb ( ly_write_clb writeclb, void* user_data, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

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

[+] lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

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

[+] lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

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

[+] lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

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

[+] lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

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

[+] lys_set_implemented ( struct lys_module const* module ) 1
⇣
lys_set_implemented ( struct lys_module* mod, char const** features )

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

to the top

## Problems with Data Types, Medium Severity 2

tree_data.h
[+] struct lyd_node 2

| Change | Effect
--- | --- | ---
1 | Base type of field parent has been changed from struct lyd_node to struct lyd_node_inner of different format. | Recompilation of a client program may be broken.
2 | Base type of field schema has been changed from struct lys_node to struct lysc_node of different format. | Recompilation of a client program may be broken.

[+] affected symbols: 9 (5.2%)
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match )
1st parameter 'siblings' (pointer) has base type 'struct lyd_node'.
lyd_first_sibling ( struct lyd_node* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_list_pos ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_path ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options )
3rd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
to the top

## Problems with Symbols, Medium Severity 47

dict.h
[+] lydict_insert ( struct ly_ctx* ctx, char const* value, size_t len ) 2
⇣
lydict_insert ( struct ly_ctx const* ctx, char const* value, size_t len, char const** str_p )

| Change | Effect
--- | --- | ---
1 | Parameter str_p of type char const** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

[+] lydict_insert_zc ( struct ly_ctx* ctx, char* value ) 2
⇣
lydict_insert_zc ( struct ly_ctx const* ctx, char* value, char const** str_p )

| Change | Effect
--- | --- | ---
1 | Parameter str_p of type char const** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

libyang.h
[+] ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented ) 1
⇣
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision )

| Change | Effect
--- | --- | ---
1 | 4th parameter implemented has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision ) 1
⇣
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision, char const** features )

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

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

| Change | Effect
--- | --- | ---
1 | Parameter new_ctx of type struct ly_ctx** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

[+] ly_set_add ( struct ly_set* set, void* node, int options ) 1
⇣
ly_set_add ( struct ly_set* set, void* object, ly_bool list, uint32_t* index_p )

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

[+] ly_set_clean ( struct ly_set* set ) 2
⇣
ly_set_clean ( struct ly_set* set, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int (4 bytes) to void. | Recompilation of a client program may be broken.

[+] ly_set_contains ( struct ly_set const* set, void* node ) 1
⇣
ly_set_contains ( struct ly_set const* set, void* object, uint32_t* index_p )

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

[+] ly_set_dup ( struct ly_set const* set ) 3
⇣
ly_set_dup ( struct ly_set const* set, void*(*duplicator)(void*), struct ly_set** newset_p )

| Change | Effect
--- | --- | ---
1 | Parameter duplicator of type void*(*)(void*) has been added to the calling stack. | Recompilation of a client program may be broken.
2 | Parameter newset_p of type struct ly_set** has been added to the calling stack. | Recompilation of a client program may be broken.
3 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

[+] ly_set_free ( struct ly_set* set ) 1
⇣
ly_set_free ( struct ly_set* set, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | Recompilation of a client program may be broken.

[+] ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options ) 1
⇣
ly_set_merge ( struct ly_set* trg, struct ly_set* src, ly_bool list, void*(*duplicator)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter duplicator of type void*(*)(void*) has been added to the calling stack. | Recompilation of a client program may be broken.

[+] ly_set_new ( ) 2
⇣
ly_set_new ( struct ly_set** set_p )

| Change | Effect
--- | --- | ---
1 | Parameter set_p of type struct ly_set** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

[+] ly_set_rm ( struct ly_set* set, void* node ) 1
⇣
ly_set_rm ( struct ly_set* set, void* object, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | Recompilation of a client program may be broken.

[+] ly_set_rm_index ( struct ly_set* set, unsigned int index ) 1
⇣
ly_set_rm_index ( struct ly_set* set, uint32_t index, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | Parameter destructor of type void(*)(void*) has been added to the calling stack. | Recompilation of a client program may be broken.

tree_data.h
[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match ) 1
⇣
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 )

| Change | Effect
--- | --- | ---
1 | Base type of parameter schema has been changed from struct lys_node to struct lysc_node of different format. | Recompilation of a client program may be broken.

[+] lyd_insert_sibling ( struct lyd_node** sibling, struct lyd_node* node ) 2
⇣
lyd_insert_sibling ( struct lyd_node* sibling, struct lyd_node* node, struct lyd_node** first )

| Change | Effect
--- | --- | ---
1 | Parameter first of type struct lyd_node** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of 1st parameter sibling has been increased from 2 to 1. | Recompilation of a client program may be broken.

[+] lyd_new_path ( struct lyd_node* data_tree, struct ly_ctx const* ctx, char const* path, void* value, enum LYD_ANYDATA_VALUETYPE value_type, int options ) 2
⇣
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 )

| Change | Effect
--- | --- | ---
1 | The pointer level of 6th parameter options has been increased from 0 to 2. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

[+] lyd_path ( struct lyd_node const* node ) 3
⇣
lyd_path ( struct lyd_node const* node, enum LYD_PATH_TYPE pathtype, char* buffer, size_t buflen )

| Change | Effect
--- | --- | ---
1 | Parameter pathtype of type enum LYD_PATH_TYPE has been added to the calling stack. | Recompilation of a client program may be broken.
2 | Parameter buffer of type char* has been added to the calling stack. | Recompilation of a client program may be broken.
3 | Parameter buflen of type size_t has been added to the calling stack. | Recompilation of a client program may be broken.

tree_schema.h
[+] lys_find_path ( struct lys_module const* cur_module, struct lys_node const* cur_node, char const* path ) 2
⇣
lys_find_path ( struct ly_ctx const* ctx, struct lysc_node const* ctx_node, char const* path, ly_bool output )

| Change | Effect
--- | --- | ---
1 | Parameter output of type ly_bool has been added to the calling stack. | Recompilation of a client program may be broken.
2 | Base type of return value has been changed from struct ly_set to struct lysc_node of different format. | Recompilation of a client program may be broken.

[+] lys_getnext ( struct lys_node const* last, struct lys_node const* parent, struct lys_module const* module, int options ) 4
⇣
lys_getnext ( struct lysc_node const* last, struct lysc_node const* parent, struct lysc_module const* module, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Base type of parameter last has been changed from struct lys_node to struct lysc_node of different format. | Recompilation of a client program may be broken.
2 | Base type of parameter module has been changed from struct lys_module to struct lysc_module of different format. | Recompilation of a client program may be broken.
3 | Base type of parameter parent has been changed from struct lys_node to struct lysc_node of different format. | Recompilation of a client program may be broken.
4 | Base type of return value has been changed from struct lys_node to struct lysc_node of different format. | Recompilation of a client program may be broken.

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

| Change | Effect
--- | --- | ---
1 | Parameter module of type struct lys_module const** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

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

| Change | Effect
--- | --- | ---
1 | Parameter module of type struct lys_module const** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

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

| Change | Effect
--- | --- | ---
1 | Parameter module of type struct lys_module const** has been added to the calling stack. | Recompilation of a client program may be broken.
2 | The pointer level of return value has been increased from 1 to 0. | Recompilation of a client program may be broken.

[+] lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_clb ( ly_write_clb writeclb, void* user_data, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 6th parameter line_length has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 5th parameter line_length has been removed from the calling stack. | Recompilation of a client program may be broken.

[+] lys_set_implemented ( struct lys_module const* module ) 1
⇣
lys_set_implemented ( struct lys_module* mod, char const** features )

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

to the top

## Problems with Data Types, Low Severity 9

libyang.h
[+] typedef ly_module_imp_clb 1

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

[+] affected symbols: 2 (1.1%)
ly_ctx_get_module_imp_clb ( struct ly_ctx const* ctx, void** user_data )
Return value is of type 'ly_module_imp_clb'.
ly_ctx_set_module_imp_clb ( struct ly_ctx* ctx, char const*(*clb)(char const*, char const*, char const*, char const*, void*, LYS_INFORMAT*, void(**)(void*, void*)), void* user_data )
2nd parameter 'clb' is of type 'ly_module_imp_clb'.
tree_data.h
[+] struct lyd_node 2

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

[+] affected symbols: 9 (5.2%)
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match )
1st parameter 'siblings' (pointer) has base type 'struct lyd_node'.
lyd_first_sibling ( struct lyd_node* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_list_pos ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_path ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options )
3rd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
tree_schema.h
[+] struct lys_module 6

| Change | Effect
--- | --- | ---
1 | Field augmented_by has been added to this type. | This field will not be initialized or used by old client applications.
2 | Field compiled has been added to this type. | This field will not be initialized or used by old client applications.
3 | Field deviated_by has been added to this type. | This field will not be initialized or used by old client applications.
4 | Field identities has been added to this type. | This field will not be initialized or used by old client applications.
5 | Field parsed has been added to this type. | This field will not be initialized or used by old client applications.
6 | Field revision has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 8 (4.6%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
to the top

## Problems with Symbols, Low Severity 52

dict.h
[+] lydict_insert ( struct ly_ctx* ctx, char const* value, size_t len ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from char const* to enum LY_ERR. | Recompilation of a client program may be broken.

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

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from char const* to enum LY_ERR. | Recompilation of a client program may be broken.

libyang.h
[+] ly_ctx_destroy ( struct ly_ctx* ctx, void(*private_destructor)(struct lys_node const*, void*) ) 1
⇣
ly_ctx_destroy ( struct ly_ctx* ctx, void(*private_destructor)(struct lysc_node const*, void*) )

| Change | Effect
--- | --- | ---
1 | Base type of 2nd parameter private_destructor has been changed from void(*)(struct lys_node const*, void*) to void(*)(struct lysc_node const*, void*). | Recompilation of a client program may be broken.

[+] ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from struct lys_module const* to struct lys_module*. | Recompilation of a client program may be broken.

[+] ly_ctx_get_options ( struct ly_ctx* ctx ) 1

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

[+] ly_ctx_internal_modules_count ( struct ly_ctx* ctx ) 1

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

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

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter options has been changed from int to uint16_t. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from struct ly_ctx* to enum LY_ERR. | Recompilation of a client program may be broken.

[+] ly_ctx_set_searchdir ( struct ly_ctx* ctx, char const* search_dir ) 1

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

[+] ly_get_log_clb ( ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from void(*)(LY_LOG_LEVEL, char const*, char const*) to ly_log_clb. | Recompilation of a client program may be broken.

[+] ly_log_options ( int opts ) 2
⇣
ly_log_options ( uint32_t opts )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter opts has been changed from int to uint32_t. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to uint32_t. | Recompilation of a client program may be broken.

[+] ly_set_add ( struct ly_set* set, void* node, int options ) 1

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

[+] ly_set_contains ( struct ly_set const* set, void* node ) 1

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

[+] ly_set_dup ( struct ly_set const* set ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from struct ly_set* to enum LY_ERR. | Recompilation of a client program may be broken.

[+] ly_set_log_clb ( void(*clb)(LY_LOG_LEVEL, char const*, char const*), int path ) 1
⇣
ly_set_log_clb ( ly_log_clb clb, ly_bool path )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter path has been changed from int to ly_bool. | Recompilation of a client program may be broken.

[+] ly_set_merge ( struct ly_set* trg, struct ly_set* src, int options ) 1

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

[+] ly_set_new ( ) 1

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from struct ly_set* to enum LY_ERR. | Recompilation of a client program may be broken.

[+] ly_set_rm ( struct ly_set* set, void* node ) 1

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

[+] ly_set_rm_index ( struct ly_set* set, unsigned int index ) 1

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

tree_data.h
[+] lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match ) 1

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

[+] lyd_insert_after ( struct lyd_node* sibling, struct lyd_node* node ) 1

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

[+] lyd_insert_before ( struct lyd_node* sibling, struct lyd_node* node ) 1

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

[+] lyd_insert_sibling ( struct lyd_node** sibling, struct lyd_node* node ) 2
⇣
lyd_insert_sibling ( struct lyd_node* sibling, struct lyd_node* node, struct lyd_node** first )

| Change | Effect
--- | --- | ---
1 | Type of 1st parameter sibling has been changed from struct lyd_node** to struct lyd_node*. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to enum LY_ERR. | Recompilation of a client program may be broken.

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

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

[+] lyd_new_path ( struct lyd_node* data_tree, struct ly_ctx const* ctx, char const* path, void* value, enum LYD_ANYDATA_VALUETYPE value_type, int options ) 4
⇣
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 )

| Change | Effect
--- | --- | ---
1 | Type of 6th parameter options has been changed from int to struct lyd_node**. | Recompilation of a client program may be broken.
2 | Type of 4th parameter value has been changed from void* to char const*. | Recompilation of a client program may be broken.
3 | Type of 5th parameter value_type has been changed from enum LYD_ANYDATA_VALUETYPE to uint32_t. | Recompilation of a client program may be broken.
4 | Type of return value has been changed from struct lyd_node* to enum LY_ERR. | Recompilation of a client program may be broken.

[+] lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_clb ( ly_write_clb writeclb, void* user_data, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 5th parameter options has been changed from int to uint32_t. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to enum LY_ERR. | Recompilation of a client program may be broken.

[+] lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to enum LY_ERR. | Recompilation of a client program may be broken.

[+] lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to enum LY_ERR. | Recompilation of a client program may be broken.

[+] lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to enum LY_ERR. | Recompilation of a client program may be broken.

[+] lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 2
⇣
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | Type of 4th parameter options has been changed from int to uint32_t. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to enum LY_ERR. | Recompilation of a client program may be broken.

tree_schema.h
[+] lys_getnext ( struct lys_node const* last, struct lys_node const* parent, struct lys_module const* module, int options ) 1
⇣
lys_getnext ( struct lysc_node const* last, struct lysc_node const* parent, struct lysc_module const* module, uint32_t options )

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

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

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from struct lys_module const* to enum LY_ERR. | Recompilation of a client program may be broken.

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

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from struct lys_module const* to enum LY_ERR. | Recompilation of a client program may be broken.

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

| Change | Effect
--- | --- | ---
1 | Type of return value has been changed from struct lys_module const* to enum LY_ERR. | Recompilation of a client program may be broken.

[+] lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

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

[+] lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

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

[+] lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

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

[+] lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

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

[+] lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1

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

[+] lys_search_localfile ( char const*const* searchpaths, int cwd, char const* name, char const* revision, char** localfile, LYS_INFORMAT* format ) 2
⇣
lys_search_localfile ( char const*const* searchpaths, ly_bool cwd, char const* name, char const* revision, char** localfile, LYS_INFORMAT* format )

| Change | Effect
--- | --- | ---
1 | Type of 2nd parameter cwd has been changed from int to ly_bool. | Recompilation of a client program may be broken.
2 | Type of return value has been changed from int to enum LY_ERR. | Recompilation of a client program may be broken.

[+] lys_set_implemented ( struct lys_module const* module ) 1

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

to the top

## Other Changes in Data Types 24

libyang.h
[+] enum LY_ERR 9

| Change | Effect
--- | --- | ---
1 | The member LY_EDENIED with value 8 has been added. | No effect.
2 | The member LY_EEXIST with value 4 has been added. | No effect.
3 | The member LY_EINCOMPLETE with value 9 has been added. | No effect.
4 | The member LY_ENOT with value 10 has been added. | No effect.
5 | The member LY_ENOTFOUND with value 5 has been added. | No effect.
6 | The member LY_EOTHER with value 11 has been added. | No effect.
7 | Value of member LY_EINT has been changed from 4 to 6. | No effect.
8 | Value of member LY_EPLUGIN has been changed from 6 to 128. | No effect.
9 | Value of member LY_EVALID has been changed from 5 to 7. | No effect.

[+] affected symbols: 3 (1.7%)
ly_err_clean ( struct ly_ctx* ctx, struct ly_err_item* eitem )
Field 'eitem.no' in 2nd parameter 'eitem' (pointer) is of type 'enum LY_ERR'.
ly_err_first ( struct ly_ctx const* ctx )
Field 'retval.no' in the return value (pointer) is of type 'enum LY_ERR'.
ly_err_print ( struct ly_err_item* eitem )
Field 'eitem.no' in 1st parameter 'eitem' (pointer) is of type 'enum LY_ERR'.
tree_data.h
[+] struct lyd_node 5

| Change | Effect
--- | --- | ---
1 | The relative position of field hash has been changed from 4 to 0. | No effect.
2 | The relative position of field next has been changed from 1 to 3. | No effect.
3 | The relative position of field parent has been changed from 3 to 2. | No effect.
4 | The relative position of field prev has been changed from 2 to 4. | No effect.
5 | The relative position of field schema has been changed from 0 to 1. | No effect.

[+] affected symbols: 9 (5.2%)
lyd_find_sibling_val ( struct lyd_node const* siblings, struct lys_node const* schema, char const* key_or_value, struct lyd_node** match )
1st parameter 'siblings' (pointer) has base type 'struct lyd_node'.
lyd_first_sibling ( struct lyd_node* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_list_pos ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_path ( struct lyd_node const* node )
1st parameter 'node' (pointer) has base type 'struct lyd_node'.
lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options )
3rd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_fd ( int fd, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_file ( FILE* f, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_mem ( char** strp, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
lyd_print_path ( char const* path, struct lyd_node const* root, enum LYD_FORMAT format, int options )
2nd parameter 'root' (pointer) has base type 'struct lyd_node'.
tree_schema.h
[+] enum LYS_INFORMAT 1

| Change | Effect
--- | --- | ---
1 | Value of member LYS_IN_YIN has been changed from 2 to 3. | No effect.

[+] affected symbols: 4 (2.3%)
lys_parse_fd ( struct ly_ctx* ctx, int fd, enum LYS_INFORMAT format )
3rd parameter 'format' is of type 'enum LYS_INFORMAT'.
lys_parse_mem ( struct ly_ctx* ctx, char const* data, enum LYS_INFORMAT format )
3rd parameter 'format' is of type 'enum LYS_INFORMAT'.
lys_parse_path ( struct ly_ctx* ctx, char const* path, enum LYS_INFORMAT format )
3rd parameter 'format' is of type 'enum LYS_INFORMAT'.
lys_search_localfile ( char const*const* searchpaths, int cwd, char const* name, char const* revision, char** localfile, LYS_INFORMAT* format )
6th parameter 'format' (pointer) has base type 'enum LYS_INFORMAT'.
[+] enum LYS_OUTFORMAT 3

| Change | Effect
--- | --- | ---
1 | The member LYS_OUT_YANG_COMPILED with value 2 has been added. | No effect.
2 | Value of member LYS_OUT_TREE has been changed from 3 to 4. | No effect.
3 | Value of member LYS_OUT_YIN has been changed from 2 to 3. | No effect.

[+] affected symbols: 5 (2.9%)
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
4th parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'format' is of type 'enum LYS_OUTFORMAT'.
[+] struct lys_module 6

| Change | Effect
--- | --- | ---
1 | The relative position of field dsc has been changed from 3 to 7. | No effect.
2 | The relative position of field filepath has been changed from 7 to 4. | No effect.
3 | The relative position of field latest_revision has been changed from 9 to 10. | No effect.
4 | The relative position of field ns has been changed from 10 to 2. | No effect.
5 | The relative position of field prefix has been changed from 2 to 3. | No effect.
6 | The relative position of field ref has been changed from 4 to 8. | No effect.

[+] affected symbols: 8 (4.6%)
ly_ctx_get_module ( struct ly_ctx const* ctx, char const* name, char const* revision, int implemented )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx )
Return value (pointer) has base type 'struct lys_module'.
ly_ctx_load_module ( struct ly_ctx* ctx, char const* name, char const* revision )
Return value (pointer) has base type 'struct lys_module'.
lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
3rd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_fd ( int fd, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_file ( FILE* f, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_mem ( char** strp, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
lys_print_path ( char const* path, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options )
2nd parameter 'module' (pointer) has base type 'struct lys_module'.
to the top

## Other Changes in Symbols 10

libyang.h
[+] ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* idx ) 1
⇣
ly_ctx_get_module_iter ( struct ly_ctx const* ctx, uint32_t* index )

| Change | Effect
--- | --- | ---
1 | 2nd parameter idx has been renamed to index. | No effect.

[+] ly_set_add ( struct ly_set* set, void* node, int options ) 1
⇣
ly_set_add ( struct ly_set* set, void* object, ly_bool list, uint32_t* index_p )

| Change | Effect
--- | --- | ---
1 | 2nd parameter node has been renamed to object. | No effect.

[+] ly_set_contains ( struct ly_set const* set, void* node ) 1
⇣
ly_set_contains ( struct ly_set const* set, void* object, uint32_t* index_p )

| Change | Effect
--- | --- | ---
1 | 2nd parameter node has been renamed to object. | No effect.

[+] ly_set_rm ( struct ly_set* set, void* node ) 1
⇣
ly_set_rm ( struct ly_set* set, void* object, void(*destructor)(void*) )

| Change | Effect
--- | --- | ---
1 | 2nd parameter node has been renamed to object. | No effect.

tree_data.h
[+] lyd_list_pos ( struct lyd_node const* node ) 1
⇣
lyd_list_pos ( struct lyd_node const* instance )

| Change | Effect
--- | --- | ---
1 | 1st parameter node has been renamed to instance. | No effect.

[+] lyd_new_path ( struct lyd_node* data_tree, struct ly_ctx const* ctx, char const* path, void* value, enum LYD_ANYDATA_VALUETYPE value_type, int options ) 3
⇣
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 )

| Change | Effect
--- | --- | ---
1 | 1st parameter data_tree has been renamed to parent. | No effect.
2 | 5th parameter value_type has been renamed to options. | No effect.
3 | 6th parameter options has been renamed to node. | No effect.

[+] lyd_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lyd_node const* root, enum LYD_FORMAT format, int options ) 1
⇣
lyd_print_clb ( ly_write_clb writeclb, void* user_data, struct lyd_node const* root, enum LYD_FORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 2nd parameter arg has been renamed to user_data. | No effect.

tree_schema.h
[+] lys_print_clb ( ssize_t(*writeclb)(void*, void const*, size_t), void* arg, struct lys_module const* module, enum LYS_OUTFORMAT format, char const* target_node, int line_length, int options ) 1
⇣
lys_print_clb ( ly_write_clb writeclb, void* user_data, struct lys_module const* module, enum LYS_OUTFORMAT format, uint32_t options )

| Change | Effect
--- | --- | ---
1 | 2nd parameter arg has been renamed to user_data. | No effect.

to the top

## Header Files 7

dict.h
extensions.h
libyang.h
tree_data.h
tree_schema.h
user_types.h
xml.h
to the top

## Source Files 11

common.c
context.c
hash_table.c
log.c
parser_lyb.c
parser_xml.c
plugins.c
printer.c
tree_data.c
tree_schema.c
xml.c
to the top

## Objects 1

libyang.so.1.9.19
to the top