# Pass this file to Valgrind with "--suppressions=tests/valgrind.supp"

{
    Mesa_glsl_parsing
    Memcheck:Cond
    fun:_ZN22_mesa_glsl_parse_stateC1EP10gl_contextjPv
    obj:/usr/lib/x86_64-linux-gnu/dri/libglsl.so
}
{
    lib_png_inflate
    Memcheck:Cond
    fun:inflateReset2
    fun:inflateInit2_
    fun:png_create_read_struct_2
    fun:png_create_read_struct
}
{
    Mesa_ReadPixels
    Memcheck:Value8
    obj:/usr/lib/x86_64-linux-gnu/dri/libdricore.so
    fun:_mesa_readpixels
}
{
    FcConfig
    Memcheck:Addr4
    fun:FcConfigFileExists
}
{
    Mesa_add_symbol_leak
    Memcheck:Leak
    fun:malloc
    fun:strdup
    fun:_mesa_symbol_table_add_symbol
}
{
    Mesa_symbol_table_add_symbol_leak
    Memcheck:Leak
    fun:calloc
    fun:_mesa_symbol_table_add_symbol
}
{
    Mesa_symbol_table_add_symbol_hash_leak
    Memcheck:Leak
    fun:calloc
    fun:hash_table_insert
    fun:_mesa_symbol_table_add_symbol
}
{
    Mesa_add_global_symbol_leak
    Memcheck:Leak
    fun:malloc
    fun:strdup
    fun:_mesa_symbol_table_add_global_symbol
}
{
    Mesa_add_global_symbol_calloc_leak
    Memcheck:Leak
    fun:calloc
    fun:_mesa_symbol_table_add_global_symbol
}
{
    Mesa_add_global_symbol_hash_leak
    Memcheck:Leak
    fun:calloc
    fun:hash_table_insert
    fun:_mesa_symbol_table_add_global_symbol
}
{
    Mesa_hash_table_replace
    Memcheck:Leak
    fun:calloc
    fun:hash_table_replace
}
{
    Mesa_symbol_table_push_scope_leak
    Memcheck:Leak
    fun:calloc
    fun:_mesa_symbol_table_push_scope
}
{
    Mesa_symbol_table_ctor_leak
    Memcheck:Leak
    fun:calloc
    fun:_mesa_symbol_table_ctor
}
{
    Mesa_bindAttribLocation_leak
    Memcheck:Leak
    fun:malloc
    fun:strdup
    fun:_mesa_BindAttribLocationARB
}
{
    Mesa_init_shader_program_leak
    Memcheck:Leak
    fun:_Znwm
    fun:string_to_uint_map_ctor
    fun:_mesa_init_shader_program
}
{
    Mesa_fix_func_fragment_program_leak
    Memcheck:Leak
    fun:malloc
    fun:_mesa_get_fixed_func_fragment_program
}
{
    Mega_get_fixed_func_fragment_program_leak
    Memcheck:Leak
    fun:realloc
    ...
    fun:_mesa_get_fixed_func_fragment_program
}
{
    Mesa_link_shader_leak
    Memcheck:Leak
    fun:_Znwm
    fun:_Z29link_assign_uniform_locationsP17gl_shader_program
    fun:_Z12link_shadersP10gl_contextP17gl_shader_program
    fun:_mesa_glsl_link_shader
}
{
    Mesa_link_shader_leak_2
    Memcheck:Leak
    fun:calloc
    fun:st_link_shader
    fun:_mesa_glsl_link_shader
}
{
    Mesa_leak
    Memcheck:Leak
    fun:malloc
    fun:_mesa_realloc
    obj:/usr/lib/x86_64-linux-gnu/dri/libdricore.so
}
{
    lib_png_inflate
    Memcheck:Cond
    fun:inflateReset2
    fun:inflateInit2_
    fun:png_create_read_struct_2
    fun:png_create_read_struct
}
{
    Mesa_ReadPixels
    Memcheck:Value8
    obj:/usr/lib/x86_64-linux-gnu/dri/libdricore.so
    fun:_mesa_readpixels
}
{
    Mesa_compile_shader
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:ralloc_strdup
    ...
    fun:_mesa_glsl_compile_shader
}
{
    Mesa_compile_shader_2
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    ...
    fun:_mesa_glsl_compile_shader
}
{
    Mesa_link_shader
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    ...
    fun:_mesa_glsl_link_shader
}
{
    Mesa_link_shader2
    Memcheck:Leak
    fun:calloc
    obj:/usr/lib/x86_64-linux-gnu/dri/libgallium.so
    fun:st_link_shader
    fun:_mesa_glsl_link_shader
}
{
    Mesa_update_state
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    ...
    fun:_mesa_update_state
}
{
    Mesa_associate_uniform_storage
    Memcheck:Leak
    fun:malloc
    fun:realloc
    fun:_mesa_uniform_attach_driver_storage
    fun:_mesa_associate_uniform_storage
}
{
    Mesa_init_ralloc_type
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:ralloc_autofree_context
    fun:_ZN9glsl_type20init_ralloc_type_ctxEv
}
{
    Mesa_glsl_parse_state
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    ...
    fun:_ZN23ast_function_expression3hirEP9exec_listP22_mesa_glsl_parse_state
}
{
    Mesa_ir_variable
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:ralloc_strdup
    fun:_ZN11ir_variableC1EPK9glsl_typePKc16ir_variable_mode
}
{
    Mesa_glsl_to_tgsi_visitor
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:rzalloc_size
    fun:_ZN20glsl_to_tgsi_visitor4emitEP14ir_instructionj10st_dst_reg10st_src_regS3_S3_
}
{
    LLVMModuleCreateWithNameInContext_Leak
    Memcheck:Leak
    fun:_Znwm
    fun:_ZNSs4_Rep9_S_createEmmRKSaIcE
    fun:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag
}
{
    glsl_type_glsl_base_type_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:ralloc_strdup
    fun:_ZN9glsl_typeC1Ej14glsl_base_typejjPKc
}
{
    glsl_type_glsl_struct_field_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    ...
    fun:_ZN9glsl_typeC1EPK17glsl_struct_fieldjPKc
}
{
    glsl_type_glsl_sampler_dim_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:ralloc_strdup
    fun:_ZN9glsl_typeC1Ej16glsl_sampler_dimbbjPKc
}
{
    Mesa_glsl_parse_state
    Memcheck:Leak
    fun:malloc
    fun:strdup
    fun:_Z14_mesa_glsl_lexP7YYSTYPEP7YYLTYPEPv
    fun:_Z16_mesa_glsl_parseP22_mesa_glsl_parse_state
}
{
    st_get_fp_variant_calloc_leak
    Memcheck:Leak
    fun:calloc
    ...
    fun:st_get_fp_variant
}
{
    st_get_fp_variant_reall_leak
    Memcheck:Leak
    fun:realloc
    ...
    fun:st_get_fp_variant
}
{
    st_validate_state_leak
    Memcheck:Leak
    fun:calloc
    obj:/usr/lib/x86_64-linux-gnu/dri/libgallium.so
    fun:st_get_fp_variant
    obj:/usr/lib/x86_64-linux-gnu/dri/libgallium.so
    fun:st_validate_state
}
{
    tgsi_dup_tokens_leak
    Memcheck:Leak
    fun:malloc
    fun:tgsi_dup_tokens
}
{
    llvm_registerclassinfo_leak
    Memcheck:Leak
    fun:_Znam
    fun:_ZNK4llvm17RegisterClassInfo7computeEPKNS_19TargetRegisterClassE
}
{
    add_variable_ir_variable_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN17glsl_symbol_table12add_variableEP11ir_variable
}
{
    glsl_to_tgsi_visitor_add_constant_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN20glsl_to_tgsi_visitor12add_constantE16gl_register_fileP17gl_constant_valueiiPj
}
{
    glsl_symbol_table_add_type_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN17glsl_symbol_table8add_typeEPKcPK9glsl_type
}
{
    llvm_constant_creator
    Memcheck:Leak
    fun:_Znwm
    fun:_ZN4llvm4UsernwEmj
    fun:_ZN4llvm15ConstantCreatorINS_12ConstantExprENS_4TypeENS_14ExprMapKeyTypeEE6createEPS2_RKS3_t
}
{
    ir_reader_read_dereference_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN9ir_reader16read_dereferenceEP12s_expression
}
{
    ast_expression_hir_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN14ast_expression3hirEP9exec_listP22_mesa_glsl_parse_state
}
{
    ir_return_close_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZNK9ir_return5cloneEPvP10hash_table
}
{
    ir_swizzle_create_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN10ir_swizzle6createEP9ir_rvaluePKcj
}
{
    ir_swizzle_clone_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZNK23ir_dereference_variable5cloneEPvP10hash_table
    fun:_ZNK10ir_swizzle5cloneEPvP10hash_table
}
{
    ir_call_generate_inline_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN7ir_call15generate_inlineEP14ir_instruction
}
{
    ir_dereference_variable_leak
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZNK23ir_dereference_variable5cloneEPvP10hash_table
}
{
    ir_copy_propagation_elements_visitor
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN36ir_copy_propagation_elements_visitor13handle_rvalueEPP9ir_rvalue
}
{
    ir_reader_read_assignement
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN9ir_reader15read_assignmentEP12s_expression
}
{
    ir_reader_read_expression
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN9ir_reader15read_expressionEP12s_expression
}
{
    ir_reader_read_call
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN9ir_reader9read_callEP12s_expression
}
{
    ir_reader_read_if
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN9ir_reader7read_ifEP12s_expressionP7ir_loop
}
{
    ir_reader_read_constant
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN9ir_reader13read_constantEP12s_expression
}
{
    ir_call_generate_inline
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_ZN7ir_call15generate_inlineEP14ir_instruction
}
{
    draw_llvw_create_variant
    Memcheck:Leak
    fun:malloc
    fun:draw_llvm_create_variant
}
{
    llvmpipe_update_setup
    Memcheck:Leak
    fun:calloc
    obj:/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
    fun:llvmpipe_update_setup
}
{
    do_assignment
    Memcheck:Leak
    fun:calloc
    fun:ralloc_size
    fun:_Z13do_assignmentP9exec_listP22_mesa_glsl_parse_statePKcP9ir_rvalueS6_b7YYLTYPE
}
{
    Mesa_shadersourceARB
    Memcheck:Leak
    fun:malloc
    fun:_mesa_ShaderSourceARB
}
