summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2015-12-19 16:34:38 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2015-12-19 16:34:38 +0000
commitadc773455da96598bb8f1099b8adc2898aa1e274 (patch)
tree0cdc6426f9b10e8bab3b418038d831f37da61f69
parente07938ae8e1a7793ab381b85d0a9a1348d6fecc3 (diff)
parente9176365751d41c5ff9faa7074d1b48acf3fc59e (diff)
downloadswig-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.i2
-rw-r--r--Lib/php/phprun.swg4
-rw-r--r--Lib/ruby/boost_shared_ptr.i24
-rw-r--r--Lib/ruby/director.swg4
-rw-r--r--Lib/ruby/rubyrun.swg2
-rw-r--r--Lib/tcl/tclrun.swg6
-rw-r--r--Source/Modules/octave.cxx4
-rw-r--r--Source/Modules/php.cxx2
-rw-r--r--Source/Modules/tcl8.cxx2
-rwxr-xr-xTools/testflags.py8
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,