From c65685939185b4f1eced04f227dea72b249dd065 Mon Sep 17 00:00:00 2001 From: Kai-Uwe Behrmann Date: Fri, 14 Dec 2012 10:50:28 +0100 Subject: [PATCH 1/1] * [core]: fix compiler warnings dereferencing type-punned pointer will break strict-aliasing rules set but unused variable possible use of uninitialised variables ... 2013-03-30: backport to oyranos-0.9.1 --- examples/devices/test_device.c | 15 ++---------- examples/taxi/taxi.c | 30 ++++++++++--------------- modules/oyranos_cmm_lcm2.c | 32 +++++++++++++------------- modules/oyranos_cmm_lcms.c | 32 +++++++++++++------------- modules/oyranos_cmm_lraw.cpp | 5 ++- modules/oyranos_cmm_oyIM_profile.c | 4 +- oyjl/oyjl_tree_parse.c | 2 +- test2.cpp | 6 ++-- tests/test_oyranos.c | 2 +- examples/oyranos_convert/oyranos_convert.c | 15 ++++++------ oyranos_gamma.c | 2 +- diff --git a/examples/devices/test_device.c b/examples/devices/test_device.c index 7ef2de8..016754b 100644 --- a/examples/devices/test_device.c +++ b/examples/devices/test_device.c @@ -205,7 +205,7 @@ int main(int argc, char *argv[]) oyConfig_s * oy_device = 0; oyProfile_s * profile = 0; const char * tmp = 0; - icSignature profile_class; + icSignature profile_class = icSigDisplayClass; oyOptions_s * options = 0; oyOptions_SetFromText( &options, "//"OY_TYPE_STD"/config/icc_profile.x_color_region_target", @@ -331,7 +331,6 @@ int main(int argc, char *argv[]) oyConfig_s * oy_device = 0; oyProfile_s * profile = 0; const char * tmp = 0; - icSignature profile_class; oyOptions_s * options = 0; oyOptions_SetFromText( &options, "//"OY_TYPE_STD"/config/icc_profile.x_color_region_target", @@ -344,15 +343,9 @@ int main(int argc, char *argv[]) oyConfDomain_s * d = oyConfDomain_FromReg( device_class, 0 ); const char * icc_profile_class = oyConfDomain_GetText( d, "icc_profile_class", oyNAME_NICK ); - if(icc_profile_class && strcmp(icc_profile_class,"display") == 0) - profile_class = icSigDisplayClass; - else if(icc_profile_class && strcmp(icc_profile_class,"output") == 0) - profile_class = icSigOutputClass; - else if(icc_profile_class && strcmp(icc_profile_class,"input") == 0) - profile_class = icSigInputClass; - printf("icc_profile_class: %s\n", icc_profile_class ); - oyConfDomain_Release( &d ); + printf("icc_profile_class: %s\n", icc_profile_class ); + oyConfDomain_Release( &d ); } error = oyDeviceGet( 0, device_class, device_name, 0, &oy_device ); @@ -374,14 +367,12 @@ int main(int argc, char *argv[]) oyProfile_s * profile = 0; oyConfigs_s * taxi_devices = 0; oyConfig_s * device = oy_device; - const char * profile_file_name = 0; oyDevicesFromTaxiDB( device, 0, &taxi_devices, 0 ); size = oyConfigs_Count( taxi_devices ); error = oyDeviceGetProfile( device, options, &profile ); - profile_file_name = oyProfile_GetFileName( profile, 0 ); int show_only_device_related = 1; int empty_added = -1; diff --git a/examples/taxi/taxi.c b/examples/taxi/taxi.c index 81c415a..ae3953f 100644 --- a/examples/taxi/taxi.c +++ b/examples/taxi/taxi.c @@ -7,9 +7,13 @@ #include #include +#include "oyranos_config_internal.h" #include #include "oyranos_helper_macros_cli.h" +#include "oyranos_helper.h" +#include "oyranos_i18n.h" #include "oyranos_sentinel.h" +#include "oyranos_string.h" #include "oyjl/oyjl_tree.h" @@ -86,7 +90,7 @@ int oyLowerStrcmpWrap (const void * a_, const void * b_) #endif } -int oyStrCmp(char * a, char * b) { return (a && b) ? strcmp(a,b) : 1; } +int oyStrCmp(const char * a, const char * b) { return (a && b) ? strcmp(a,b) : 1; } #define OPENICC_DEVICE_JSON_HEADER_BASE \ "{\n" \ @@ -107,8 +111,8 @@ void storeTaxiProfile( const char * taxi_id, const char * taxi_full_id, const ch { oyOptions_s * options = 0; oyProfile_s * profile; - int error = oyOptions_SetFromText( &options, - "//" OY_TYPE_STD "/argv/TAXI_id", + + oyOptions_SetFromText( &options, "//" OY_TYPE_STD "/argv/TAXI_id", taxi_full_id, OY_CREATE_NEW ); @@ -138,15 +142,9 @@ void storeTaxiProfile( const char * taxi_id, const char * taxi_full_id, const ch int main( int argc, char ** argv ) { - oyConfig_s * moni = NULL, - * device = NULL; int error = 0; - oyConfigs_s * devices = NULL; - oyOptions_s * options = NULL; - oyProfile_s * profile = NULL; char * profile_name = 0; /* the file to write to */ - int32_t rank_value = 0, max_rank_value = 0; - int i,n, max_device_pos = -1, + int i, verbose = 0, list_manufacturers = 0, list_urls = 0; @@ -156,11 +154,9 @@ int main( int argc, char ** argv ) size_t size = 0; const char * short_name = NULL, - * long_name = NULL, - * name = NULL; + * long_name = NULL; oyjl_value_s * root = 0; - char * val = NULL, - * key = NULL; + char * val = NULL; oyjl_value_s * v = 0, * tv = 0; int count; @@ -229,10 +225,8 @@ int main( int argc, char ** argv ) error = oyjl_tree_from_json( manufacturers, &root, NULL ); if(root) { - int level = 0; - int count = oyjl_value_count(root); - char ** sort = calloc( sizeof(char**), 2*count + 2 ); + const char ** sort = calloc( sizeof(char**), 2*count + 2 ); for(i = 0; i < count; ++i) { @@ -392,5 +386,5 @@ int main( int argc, char ** argv ) if(device_db) oyDeAllocateFunc_(device_db); device_db = 0; } - return 0; + return error; } diff --git a/modules/oyranos_cmm_lcm2.c b/modules/oyranos_cmm_lcm2.c index c50df87..56c2228 100644 --- a/modules/oyranos_cmm_lcm2.c +++ b/modules/oyranos_cmm_lcm2.c @@ -215,8 +215,8 @@ lcm2ProfileWrap_s * lcm2CMMProfile_GetWrap_( oyPointer_s* cmm_ptr ) { lcm2ProfileWrap_s * s = 0; - char type_[4] = lcm2PROFILE; - int type = *((int*)&type_); + char * type_ = lcm2PROFILE; + int type = *((int32_t*)type_); if(cmm_ptr && !lcm2CMMCheckPointer( cmm_ptr, lcm2PROFILE ) && oyPointer_GetPointer(cmm_ptr)) @@ -238,8 +238,8 @@ lcm2ProfileWrap_s * lcm2CMMProfile_GetWrap_( oyPointer_s* cmm_ptr ) int lcm2CMMTransform_GetWrap_ ( oyPointer_s * cmm_ptr, lcm2TransformWrap_s ** s ) { - char type_[4] = lcm2TRANSFORM; - int type = *((int*)&type_); + char * type_ = lcm2TRANSFORM; + int type = *((int32_t*)type_); if(cmm_ptr && !lcm2CMMCheckPointer( cmm_ptr, lcm2TRANSFORM ) && oyPointer_GetPointer(cmm_ptr)) @@ -266,8 +266,8 @@ int lcm2CMMProfileReleaseWrap(oyPointer *p) int error = !p; lcm2ProfileWrap_s * s = 0; - char type_[4] = lcm2PROFILE; - int type = *((int*)&type_); + char * type_ = lcm2PROFILE; + int type = *((int32_t*)type_); char s_type[4]; if(!error && *p) @@ -315,8 +315,8 @@ int lcm2CMMData_Open ( oyStruct_s * data, if(!error) { - char type_[4] = lcm2PROFILE; - int type = *((int*)&type_); + char * type_ = lcm2PROFILE; + int type = *((int32_t*)type_); size_t size = 0; oyPointer block = 0; lcm2ProfileWrap_s * s = calloc(sizeof(lcm2ProfileWrap_s), 1); @@ -482,8 +482,8 @@ lcm2TransformWrap_s * lcm2TransformWrap_Set_ ( if(!error) { - char type_[4] = lcm2TRANSFORM; - int type = *((int*)&type_); + char * type_ = lcm2TRANSFORM; + int type = *((int32_t*)type_); lcm2TransformWrap_s * ltw = calloc(sizeof(lcm2TransformWrap_s), 1); ltw->type = type; @@ -991,8 +991,8 @@ cmsHPROFILE lcm2AddProofProfile ( oyProfile_s * proof, { oyPointer_s * oy = cmm_ptr; - char type_[4] = lcm2PROFILE; - uint32_t type = *((uint32_t*)&type_); + char * type_ = lcm2PROFILE; + uint32_t type = *((uint32_t*)type_); cmsUInt32Number size = 0; oyPointer block = 0; lcm2ProfileWrap_s * s = calloc(sizeof(lcm2ProfileWrap_s), 1); @@ -2182,10 +2182,10 @@ int lcm2FilterPlug_CmmIccRun ( oyFilterPlug_s * requestor_plug, { uint8_t * array_in_tmp = 0, * array_out_tmp = 0; - float * array_in_tmp_flt, - * array_out_tmp_flt; - double * array_in_tmp_dbl, - * array_out_tmp_dbl; + float * array_in_tmp_flt = 0, + * array_out_tmp_flt = 0; + double * array_in_tmp_dbl = 0, + * array_out_tmp_dbl = 0; uint8_t ** array_in_data = oyArray2d_GetData( array_in ), ** array_out_data = oyArray2d_GetData( array_out ); int threads_n = diff --git a/modules/oyranos_cmm_lcms.c b/modules/oyranos_cmm_lcms.c index bea56ed..b42fc99 100644 --- a/modules/oyranos_cmm_lcms.c +++ b/modules/oyranos_cmm_lcms.c @@ -213,8 +213,8 @@ lcmsProfileWrap_s * lcmsCMMProfile_GetWrap_( oyPointer_s * cmm_ptr ) { lcmsProfileWrap_s * s = 0; - char type_[4] = lcmsPROFILE; - int type = *((int*)&type_); + char * type_ = lcmsPROFILE; + int type = *((int32_t*)type_); if(cmm_ptr && !lcmsCMMCheckPointer( cmm_ptr, lcmsPROFILE ) && oyPointer_GetPointer(cmm_ptr)) @@ -236,8 +236,8 @@ lcmsProfileWrap_s * lcmsCMMProfile_GetWrap_( oyPointer_s * cmm_ptr ) int lcmsCMMTransform_GetWrap_ ( oyPointer_s * cmm_ptr, lcmsTransformWrap_s ** s ) { - char type_[4] = lcmsTRANSFORM; - int type = *((int*)&type_); + char * type_ = lcmsTRANSFORM; + int type = *((int32_t*)type_); if(cmm_ptr && !lcmsCMMCheckPointer( cmm_ptr, lcmsTRANSFORM ) && oyPointer_GetPointer(cmm_ptr)) @@ -264,8 +264,8 @@ int lcmsCMMProfileReleaseWrap(oyPointer *p) int error = !p; lcmsProfileWrap_s * s = 0; - char type_[4] = lcmsPROFILE; - int type = *((int*)&type_); + char * type_ = lcmsPROFILE; + int type = *((int32_t*)type_); char s_type[4]; if(!error && *p) @@ -313,8 +313,8 @@ int lcmsCMMData_Open ( oyStruct_s * data, if(!error) { - char type_[4] = lcmsPROFILE; - int type = *((int*)&type_); + char * type_ = lcmsPROFILE; + int type = *((int32_t*)type_); size_t size = 0; oyPointer block = 0; lcmsProfileWrap_s * s = calloc(sizeof(lcmsProfileWrap_s), 1); @@ -466,8 +466,8 @@ lcmsTransformWrap_s * lcmsTransformWrap_Set_ ( if(!error) { - char type_[4] = lcmsTRANSFORM; - int type = *((int*)&type_); + char * type_ = lcmsTRANSFORM; + int type = *((int32_t*)type_); lcmsTransformWrap_s * ltw = calloc(sizeof(lcmsTransformWrap_s), 1); ltw->type = type; @@ -879,8 +879,8 @@ cmsHPROFILE lcmsAddProofProfile ( oyProfile_s * proof, { oyPointer_s * oy = cmm_ptr; - char type_[4] = lcmsPROFILE; - uint32_t type = *((uint32_t*)&type_); + char * type_ = lcmsPROFILE; + uint32_t type = *((uint32_t*)type_); size_t size = 0; oyPointer block = 0; lcmsProfileWrap_s * s = calloc(sizeof(lcmsProfileWrap_s), 1); @@ -1821,10 +1821,10 @@ int lcmsFilterPlug_CmmIccRun ( oyFilterPlug_s * requestor_plug, { uint8_t * array_in_tmp = 0, * array_out_tmp = 0; - float * array_in_tmp_flt, - * array_out_tmp_flt; - double * array_in_tmp_dbl, - * array_out_tmp_dbl; + float * array_in_tmp_flt = 0, + * array_out_tmp_flt = 0; + double * array_in_tmp_dbl = 0, + * array_out_tmp_dbl = 0; uint8_t ** array_in_data = oyArray2d_GetData( array_in ), ** array_out_data = oyArray2d_GetData( array_out ); int threads_n = diff --git a/modules/oyranos_cmm_lraw.cpp b/modules/oyranos_cmm_lraw.cpp index 5494091..eacbc46 100644 --- a/modules/oyranos_cmm_lraw.cpp +++ b/modules/oyranos_cmm_lraw.cpp @@ -357,7 +357,7 @@ typedef struct { oyCIExyY v[3]; } oyCIExyYTriple; -void _oyMAT3toCIExyYTriple ( const oyMAT3* a,oyCIExyYTriple * triple ) +int _oyMAT3toCIExyYTriple ( const oyMAT3* a,oyCIExyYTriple * triple ) { int i,j, fail=0; @@ -380,6 +380,7 @@ void _oyMAT3toCIExyYTriple ( const oyMAT3* a,oyCIExyYTriple * triple ) triple->v[i].xy[1] = 1; } } + return fail; } const char * _oyMAT3show ( const oyMAT3* a ) { @@ -488,7 +489,7 @@ oyProfile_s * createMatrixProfile ( libraw_colordata_t & color ) _oyMAT3per( &ab_cm, &cam_zyx, &pre_mul ); if(_oyMAT3inverse( &ab_cm, &ab_cm_inverse )) // convert to CIE*xyY - _oyMAT3toCIExyYTriple( &ab_cm_inverse, &ab_cm_inverse_xyY ); + fail = _oyMAT3toCIExyYTriple( &ab_cm_inverse, &ab_cm_inverse_xyY ); else { fail = 1; diff --git a/modules/oyranos_cmm_oyIM_profile.c b/modules/oyranos_cmm_oyIM_profile.c index 0bbb412..c98aba7 100644 --- a/modules/oyranos_cmm_oyIM_profile.c +++ b/modules/oyranos_cmm_oyIM_profile.c @@ -249,9 +249,9 @@ int oyWriteIcSigLutAtoBType ( oyStructList_s * texts, size_t tag_size ) { int error = 0; - int size, i; + int size = 0, i; size_t off; - uint8_t * dimensions, precission, *u8; + uint8_t * dimensions = 0, precission = 1, *u8; uint16_t u16; char * tmp = 0; char * text = oyAllocateFunc_(128); diff --git a/oyjl/oyjl_tree_parse.c b/oyjl/oyjl_tree_parse.c index 78c9882..e43117d 100644 --- a/oyjl/oyjl_tree_parse.c +++ b/oyjl/oyjl_tree_parse.c @@ -684,7 +684,7 @@ yajl_status oyjl_tree_from_json ( const char * text, #if YAJL_VERSION < 20000 yajl_parser_config yconfig = { 1, 1 }; #endif - yajl_handle yhandle; + yajl_handle yhandle = 0; if(!error && context) { diff --git a/test2.cpp b/test2.cpp index a71f484..476c3be 100644 --- a/test2.cpp +++ b/test2.cpp @@ -3573,7 +3573,7 @@ oyTESTRESULT_e testImagePixel() /* all other buffer pixels shall remain untouched */ buf_16out2x2[3]==0 && buf_16out2x2[4]==0 && buf_16out2x2[5]==0 && buf_16out2x2[6]==0 && buf_16out2x2[7]==0 && buf_16out2x2[8]==0 && - buf_16out2x2[9]==0 && buf_16out2x2[10]==0 && buf_16out2x2[10]==0 + buf_16out2x2[9]==0 && buf_16out2x2[10]==0 && buf_16out2x2[11]==0 ) { PRINT_SUB( oyTESTRESULT_SUCCESS, "lower right source pixel in 1 pixel RoI %s", @@ -3621,7 +3621,7 @@ oyTESTRESULT_e testImagePixel() buf_16in2x2[6]==0 && buf_16in2x2[7]==0 && buf_16in2x2[8]==0 && buf_16in2x2[9]==65535 && buf_16in2x2[10]==65535 &&buf_16in2x2[11]==65535&& /* the result shall appear in the lower right corner / last pixel */ - buf_16out2x2[9]==65535 && buf_16out2x2[10]>20000&&buf_16out2x2[20]<40000&& + buf_16out2x2[9]==65535 && buf_16out2x2[10]>20000&&buf_16out2x2[11]<40000&& /* all other buffer pixels shall remain untouched */ buf_16out2x2[0]==0 && buf_16out2x2[1]==0 && buf_16out2x2[2]==0 && buf_16out2x2[3]==0 && buf_16out2x2[4]==0 && buf_16out2x2[5]==0 && @@ -3986,7 +3986,7 @@ oyTESTRESULT_e oyTestRun ( oyTESTRESULT_e (*test)(void), /* main */ int main(int argc, char** argv) { - int i, error; + int i, error = 0; if(getenv("OY_DEBUG")) { diff --git a/tests/test_oyranos.c b/tests/test_oyranos.c index bb3f521..bccec7c 100644 --- a/tests/test_oyranos.c +++ b/tests/test_oyranos.c @@ -1009,7 +1009,7 @@ oyTESTRESULT_e testObserver () /* main */ int main(int argc, char** argv) { - int i, error; + int i, error = 0; /* init */ for(i = 0; i <= oyTESTRESULT_UNKNOWN; ++i) diff --git a/examples/oyranos_convert/oyranos_convert.c b/examples/oyranos_convert/oyranos_convert.c index 099b872..51dd59d 100644 --- a/examples/oyranos_convert/oyranos_convert.c +++ b/examples/oyranos_convert/oyranos_convert.c @@ -135,16 +135,10 @@ int main( int argc , char** argv ) int levels = 0; - const char * result_xml = 0; - char * text = 0, * t = 0; - const char * opt_names = 0; - oyFormsArgs_s * forms_args = oyFormsArgs_New( 0 ); - const char * data = 0, * ct = 0; char ** other_args = 0; int other_args_n = 0; - int i; + char * text = 0, * t = 0; oyOptions_s * opts = 0; - oyOption_s * o = 0; oyImage_s * image = 0; #ifdef USE_GETTEXT @@ -275,6 +269,13 @@ int main( int argc , char** argv ) #if 0 if(other_args) { + const char * result_xml = 0; + const char * opt_names = 0; + oyFormsArgs_s * forms_args = oyFormsArgs_New( 0 ); + const char * data = 0, * ct = 0; + int i; + oyOption_s * o = 0; + forms_args->print = 0; error = oyXFORMsRenderUi( text, oy_ui_cmd_line_handlers, forms_args ); diff --git a/oyranos_gamma.c b/oyranos_gamma.c index 598aa2d..0c5b09e 100644 --- a/oyranos_gamma.c +++ b/oyranos_gamma.c @@ -172,7 +172,7 @@ int main( int argc , char** argv ) else if(OY_IS_ARG("profile")) { OY_PARSE_STRING_ARG2(prof_name, "profile"); break; } else if(OY_IS_ARG("display")) - { const char * t; OY_PARSE_STRING_ARG2(t, "display"); + { const char * t=0; OY_PARSE_STRING_ARG2(t, "display"); if(t) display_name = strdup(t); break; } else if(OY_IS_ARG("modules")) { list_modules = 1; i=100; break; } -- 1.5.6.5