diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2015-12-19 16:34:38 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2015-12-19 16:34:38 +0000 |
commit | adc773455da96598bb8f1099b8adc2898aa1e274 (patch) | |
tree | 0cdc6426f9b10e8bab3b418038d831f37da61f69 | |
parent | e07938ae8e1a7793ab381b85d0a9a1348d6fecc3 (diff) | |
parent | e9176365751d41c5ff9faa7074d1b48acf3fc59e (diff) | |
download | swig-adc773455da96598bb8f1099b8adc2898aa1e274.tar.gz |
Merge branch 'missing-initializers'
* missing-initializers:
Tcl fix when using -Wmissing-field-initializers warnings
Php fix for -Wmissing-field-initializers warning
Fixes for Octave and missing -Wmissing-field-initializers in swig_octave_member
Fixes for Ruby and using -Wmissing-field-initializers
R test case warning fixes
Use -Wmissing-field-initializers warning testing all languages on Travis
-rw-r--r-- | Examples/test-suite/r_copy_struct.i | 2 | ||||
-rw-r--r-- | Lib/php/phprun.swg | 4 | ||||
-rw-r--r-- | Lib/ruby/boost_shared_ptr.i | 24 | ||||
-rw-r--r-- | Lib/ruby/director.swg | 4 | ||||
-rw-r--r-- | Lib/ruby/rubyrun.swg | 2 | ||||
-rw-r--r-- | Lib/tcl/tclrun.swg | 6 | ||||
-rw-r--r-- | Source/Modules/octave.cxx | 4 | ||||
-rw-r--r-- | Source/Modules/php.cxx | 2 | ||||
-rw-r--r-- | Source/Modules/tcl8.cxx | 2 | ||||
-rwxr-xr-x | Tools/testflags.py | 8 |
10 files changed, 34 insertions, 24 deletions
diff --git a/Examples/test-suite/r_copy_struct.i b/Examples/test-suite/r_copy_struct.i index fda321afb..6a79b5422 100644 --- a/Examples/test-suite/r_copy_struct.i +++ b/Examples/test-suite/r_copy_struct.i @@ -48,7 +48,7 @@ getA() return a; } -static struct A fixed = {20, 3, 42.0}; +static struct A fixed = {20, 3, 42.0, 0, 0}; struct A * getARef() diff --git a/Lib/php/phprun.swg b/Lib/php/phprun.swg index 00d8bc560..3f0aa7ac6 100644 --- a/Lib/php/phprun.swg +++ b/Lib/php/phprun.swg @@ -24,6 +24,10 @@ extern "C" { # define SWIG_ZEND_NAMED_FE(ZN, N, A) ZEND_NAMED_FE(ZN, N, A) #endif +#ifndef ZEND_FE_END +# define ZEND_FE_END { NULL, NULL, NULL } +#endif + #ifndef Z_SET_ISREF_P /* For PHP < 5.3 */ # define Z_SET_ISREF_P(z) (z)->is_ref = 1 diff --git a/Lib/ruby/boost_shared_ptr.i b/Lib/ruby/boost_shared_ptr.i index a58f0f828..938074d81 100644 --- a/Lib/ruby/boost_shared_ptr.i +++ b/Lib/ruby/boost_shared_ptr.i @@ -26,7 +26,7 @@ // plain value %typemap(in) CONST TYPE (void *argp, int res = 0) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); @@ -45,7 +45,7 @@ %typemap(varin) CONST TYPE { void *argp = 0; - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %variable_fail(res, "$type", "$name"); @@ -65,7 +65,7 @@ // plain pointer // Note: $disown not implemented by default as it will lead to a memory leak of the shared_ptr instance %typemap(in) CONST TYPE * (void *argp = 0, int res = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SHARED_PTR_DISOWN | %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); @@ -87,7 +87,7 @@ %typemap(varin) CONST TYPE * { void *argp = 0; - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %variable_fail(res, "$type", "$name"); @@ -110,7 +110,7 @@ // plain reference %typemap(in) CONST TYPE & (void *argp = 0, int res = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); @@ -131,7 +131,7 @@ %typemap(varin) CONST TYPE & { void *argp = 0; - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %variable_fail(res, "$type", "$name"); @@ -156,7 +156,7 @@ // plain pointer by reference // Note: $disown not implemented by default as it will lead to a memory leak of the shared_ptr instance %typemap(in) TYPE *CONST& (void *argp = 0, int res = 0, $*1_ltype temp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SHARED_PTR_DISOWN | %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); @@ -184,7 +184,7 @@ // shared_ptr by value %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > (void *argp, int res = 0) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); @@ -198,7 +198,7 @@ } %typemap(varin) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; void *argp = 0; int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { @@ -214,7 +214,7 @@ // shared_ptr by reference %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > & (void *argp, int res = 0, $*1_ltype tempshared) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); @@ -241,7 +241,7 @@ // shared_ptr by pointer %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * (void *argp, int res = 0, $*1_ltype tempshared) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); @@ -269,7 +269,7 @@ // shared_ptr by pointer reference %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *& (void *argp, int res = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared, $*1_ltype temp = 0) { - swig_ruby_owntype newmem = {0}; + swig_ruby_owntype newmem = {0, 0}; res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem); if (!SWIG_IsOK(res)) { %argument_fail(res, "$type", $symname, $argnum); diff --git a/Lib/ruby/director.swg b/Lib/ruby/director.swg index 5d5161db4..c6c53a343 100644 --- a/Lib/ruby/director.swg +++ b/Lib/ruby/director.swg @@ -30,7 +30,7 @@ namespace Swig { } virtual swig_ruby_owntype get_own() const { - swig_ruby_owntype own = {0}; + swig_ruby_owntype own = {0, 0}; return own; } }; @@ -332,7 +332,7 @@ namespace Swig { } swig_ruby_owntype swig_release_ownership(void *vptr) const { - swig_ruby_owntype own = {0}; + swig_ruby_owntype own = {0, 0}; if (vptr) { SWIG_GUARD(swig_mutex_own); swig_ownership_map::iterator iter = swig_owner.find(vptr); diff --git a/Lib/ruby/rubyrun.swg b/Lib/ruby/rubyrun.swg index 615d8ad38..e18208f90 100644 --- a/Lib/ruby/rubyrun.swg +++ b/Lib/ruby/rubyrun.swg @@ -245,7 +245,7 @@ typedef struct { SWIGRUNTIME swig_ruby_owntype SWIG_Ruby_AcquirePtr(VALUE obj, swig_ruby_owntype own) { - swig_ruby_owntype oldown = {0}; + swig_ruby_owntype oldown = {0, 0}; if (obj) { oldown.datafree = RDATA(obj)->dfree; RDATA(obj)->dfree = own.datafree; diff --git a/Lib/tcl/tclrun.swg b/Lib/tcl/tclrun.swg index c91a7e511..fd1052a28 100644 --- a/Lib/tcl/tclrun.swg +++ b/Lib/tcl/tclrun.swg @@ -67,6 +67,12 @@ #define SWIG_GetConstant SWIG_GetConstantObj #define SWIG_Tcl_GetConstant SWIG_Tcl_GetConstantObj +#if TCL_MAJOR_VERSION >= 8 && TCL_MINOR_VERSION >= 5 +#define SWIG_TCL_HASHTABLE_INIT {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} +#else +#define SWIG_TCL_HASHTABLE_INIT {0} +#endif + #include "assert.h" #ifdef __cplusplus diff --git a/Source/Modules/octave.cxx b/Source/Modules/octave.cxx index 0e3e16cbb..fcbdb97e2 100644 --- a/Source/Modules/octave.cxx +++ b/Source/Modules/octave.cxx @@ -234,7 +234,7 @@ public: } Printf(f_init, "return true;\n}\n"); - Printf(s_global_tab, "{0,0,0,0,0}\n};\n"); + Printf(s_global_tab, "{0,0,0,0,0,0}\n};\n"); Printv(f_wrappers, s_global_tab, NIL); SwigType_emit_type_table(f_runtime, f_wrappers); @@ -998,7 +998,7 @@ public: Delete(cnameshdw); } - Printf(s_members_tab, "{0,0,0,0}\n};\n"); + Printf(s_members_tab, "{0,0,0,0,0,0}\n};\n"); Printv(f_wrappers, s_members_tab, NIL); String *base_class_names = NewString(""); diff --git a/Source/Modules/php.cxx b/Source/Modules/php.cxx index 37a8f9628..64f03ab21 100644 --- a/Source/Modules/php.cxx +++ b/Source/Modules/php.cxx @@ -639,7 +639,7 @@ public: Printv(f_begin, all_cs_entry, "\n\n", s_arginfo, "\n\n", s_entry, " SWIG_ZEND_NAMED_FE(swig_", module, "_alter_newobject,_wrap_swig_", module, "_alter_newobject,NULL)\n" " SWIG_ZEND_NAMED_FE(swig_", module, "_get_newobject,_wrap_swig_", module, "_get_newobject,NULL)\n" - "{NULL, NULL, NULL}\n};\n\n", NIL); + " ZEND_FE_END\n};\n\n", NIL); Printv(f_begin, s_init, NIL); Delete(s_header); Delete(s_wrappers); diff --git a/Source/Modules/tcl8.cxx b/Source/Modules/tcl8.cxx index 2e32fc808..72eba0594 100644 --- a/Source/Modules/tcl8.cxx +++ b/Source/Modules/tcl8.cxx @@ -968,7 +968,7 @@ public: Printf(f_wrappers, ",0"); } Printv(f_wrappers, ", swig_", mangled_classname, "_methods, swig_", mangled_classname, "_attributes, swig_", mangled_classname, "_bases,", - "swig_", mangled_classname, "_base_names, &swig_module };\n", NIL); + "swig_", mangled_classname, "_base_names, &swig_module, SWIG_TCL_HASHTABLE_INIT };\n", NIL); if (!itcl) { Printv(cmd_tab, tab4, "{ SWIG_prefix \"", class_name, "\", (swig_wrapper_func) SWIG_ObjectConstructor, (ClientData)&_wrap_class_", mangled_classname, diff --git a/Tools/testflags.py b/Tools/testflags.py index 63a3b4645..9aafd8eb7 100755 --- a/Tools/testflags.py +++ b/Tools/testflags.py @@ -3,7 +3,7 @@ def get_cflags(language, std, compiler): if std == None or len(std) == 0: std = "gnu89" - c_common = "-fdiagnostics-show-option -std=" + std + " -Wno-long-long -Wreturn-type -Wdeclaration-after-statement" + c_common = "-fdiagnostics-show-option -std=" + std + " -Wno-long-long -Wreturn-type -Wdeclaration-after-statement -Wmissing-field-initializers" cflags = { "csharp":"-Werror " + c_common, "d":"-Werror " + c_common, @@ -15,7 +15,7 @@ def get_cflags(language, std, compiler): "octave":"-Werror " + c_common, "perl5":"-Werror " + c_common, "php":"-Werror " + c_common, - "python":"-Werror " + c_common + " -Wmissing-field-initializers", + "python":"-Werror " + c_common, "r":"-Werror " + c_common, "ruby":"-Werror " + c_common, "scilab":"-Werror " + c_common, @@ -32,7 +32,7 @@ def get_cflags(language, std, compiler): def get_cxxflags(language, std, compiler): if std == None or len(std) == 0: std = "c++98" - cxx_common = "-fdiagnostics-show-option -std=" + std + " -Wno-long-long -Wreturn-type" + cxx_common = "-fdiagnostics-show-option -std=" + std + " -Wno-long-long -Wreturn-type -Wmissing-field-initializers" cxxflags = { "csharp":"-Werror " + cxx_common, "d":"-Werror " + cxx_common, @@ -44,7 +44,7 @@ def get_cxxflags(language, std, compiler): "octave":"-Werror " + cxx_common, "perl5":"-Werror " + cxx_common, "php":"-Werror " + cxx_common, - "python":"-Werror " + cxx_common + " -Wmissing-field-initializers", + "python":"-Werror " + cxx_common, "r":"-Werror " + cxx_common, "ruby":"-Werror " + cxx_common, "scilab": cxx_common, |