blob: 207589e3b0c405b8574db3a6118c3adbbdcaab55 [file] [log] [blame]
From c65685939185b4f1eced04f227dea72b249dd065 Mon Sep 17 00:00:00 2001
From: Kai-Uwe Behrmann <ku.b@gmx.de>
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 <oyConfigs_s.h>
#include <oyProfile_s.h>
+#include "oyranos_config_internal.h"
#include <oyranos_devices.h>
#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