From 8bcc0bf8ebf4229acac636f78ba55c92b2072f77 Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Wed, 19 Oct 2005 14:26:13 +0000 Subject: [PATCH] fix warnings/errors for gcc4.0, icc and valgrind git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7689 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Examples/test-suite/primitive_types.i | 12 ++++++++---- SWIG/Examples/test-suite/python/inplaceadd.i | 2 -- .../test-suite/python/primitive_types_runme.py | 8 -------- .../test-suite/ruby/primitive_types_runme.rb | 3 --- SWIG/Lib/python/pyerrors.swg | 12 ------------ SWIG/Lib/python/pywstrings.swg | 1 - SWIG/Lib/ruby/rubyerrors.swg | 13 ------------- SWIG/Lib/swiglabels.swg | 8 ++++++-- SWIG/Lib/tcl/tclerrors.swg | 12 ------------ SWIG/Lib/typemaps/strings.swg | 2 +- SWIG/Source/Modules/emit.cxx | 14 ++++++++------ SWIG/Source/Modules/python.cxx | 2 +- 12 files changed, 24 insertions(+), 65 deletions(-) diff --git a/SWIG/Examples/test-suite/primitive_types.i b/SWIG/Examples/test-suite/primitive_types.i index 01813ad8f..fd385f431 100644 --- a/SWIG/Examples/test-suite/primitive_types.i +++ b/SWIG/Examples/test-suite/primitive_types.i @@ -220,8 +220,6 @@ macro(long, pfx, long) macro(unsigned long, pfx, ulong) macro(long long, pfx, llong) macro(unsigned long long, pfx, ullong) -macro(float, pfx, float) -macro(double, pfx, double) macro(char, pfx, char) %enddef @@ -463,6 +461,9 @@ macro(size_t, pfx, sizet) return len; } + static const double stc_double; + static const double stc_float; + }; @@ -534,7 +535,6 @@ macro(size_t, pfx, sizet) return t; } - }; int v_check() @@ -547,7 +547,6 @@ macro(size_t, pfx, sizet) } - %inline %{ const char* char_foo(float f, const char *s) { @@ -560,6 +559,11 @@ macro(size_t, pfx, sizet) %} +%{ + const double Test::stc_double = 1; + const double Test::stc_float = 1; +%} + %inline %{ diff --git a/SWIG/Examples/test-suite/python/inplaceadd.i b/SWIG/Examples/test-suite/python/inplaceadd.i index 664bbdebd..91ef84bd2 100644 --- a/SWIG/Examples/test-suite/python/inplaceadd.i +++ b/SWIG/Examples/test-suite/python/inplaceadd.i @@ -11,8 +11,6 @@ A(int v): val(v) { - int a = 2; - a += (a +=1 ) = 5; } A& operator+=(int v) diff --git a/SWIG/Examples/test-suite/python/primitive_types_runme.py b/SWIG/Examples/test-suite/python/primitive_types_runme.py index fe0226b21..02cc21763 100644 --- a/SWIG/Examples/test-suite/python/primitive_types_runme.py +++ b/SWIG/Examples/test-suite/python/primitive_types_runme.py @@ -14,8 +14,6 @@ cvar.var_long = sct_long cvar.var_ulong = sct_ulong cvar.var_llong = sct_llong cvar.var_ullong = sct_ullong -cvar.var_float = sct_float -cvar.var_double = sct_double cvar.var_char = sct_char cvar.var_pchar = sct_pchar cvar.var_pcharc = sct_pcharc @@ -46,8 +44,6 @@ if cvar.var_long != cct_long: pyerror("long", cvar.var_long, cct_long) if cvar.var_ulong != cct_ulong: pyerror("ulong", cvar.var_ulong, cct_ulong) if cvar.var_llong != cct_llong: pyerror("llong", cvar.var_llong, cct_llong) if cvar.var_ullong != cct_ullong: pyerror("ullong", cvar.var_ullong, cct_ullong) -if cvar.var_float != cct_float: pyerror("float", cvar.var_float, cct_float) -if cvar.var_double != cct_double: pyerror("double", cvar.var_double, cct_double) if cvar.var_char != cct_char: pyerror("char", cvar.var_char, cct_char) if cvar.var_pchar != cct_pchar: pyerror("pchar", cvar.var_pchar, cct_pchar) if cvar.var_pcharc != cct_pcharc: pyerror("pchar", cvar.var_pcharc, cct_pcharc) @@ -128,8 +124,6 @@ p.var_long = p.stc_long p.var_ulong = p.stc_ulong p.var_llong = p.stc_llong p.var_ullong = p.stc_ullong -p.var_float = p.stc_float -p.var_double = p.stc_double p.var_char = p.stc_char p.var_pchar = sct_pchar p.var_pcharc = sct_pcharc @@ -156,8 +150,6 @@ t.var_long = t.stc_long t.var_ulong = t.stc_ulong t.var_llong = t.stc_llong t.var_ullong = t.stc_ullong -t.var_float = t.stc_float -t.var_double = t.stc_double t.var_char = t.stc_char t.var_pchar = sct_pchar t.var_pcharc = sct_pcharc diff --git a/SWIG/Examples/test-suite/ruby/primitive_types_runme.rb b/SWIG/Examples/test-suite/ruby/primitive_types_runme.rb index 35c380826..65f1a3908 100644 --- a/SWIG/Examples/test-suite/ruby/primitive_types_runme.rb +++ b/SWIG/Examples/test-suite/ruby/primitive_types_runme.rb @@ -5,9 +5,6 @@ include Primitive_types raise RuntimeError if val_uchar(255) != 255 -raise RuntimeError if val_double(255.5) != 255.5 - - fail = 0 begin val_uchar(-1) diff --git a/SWIG/Lib/python/pyerrors.swg b/SWIG/Lib/python/pyerrors.swg index e4f35195d..0437c9319 100644 --- a/SWIG/Lib/python/pyerrors.swg +++ b/SWIG/Lib/python/pyerrors.swg @@ -10,40 +10,28 @@ SWIG_Python_ErrorType(int code) { switch(code) { case SWIG_MemoryError: return PyExc_MemoryError; - break; case SWIG_IOError: return PyExc_IOError; - break; case SWIG_RuntimeError: return PyExc_RuntimeError; - break; case SWIG_IndexError: return PyExc_IndexError; - break; case SWIG_TypeError: return PyExc_TypeError; - break; case SWIG_DivisionByZero: return PyExc_ZeroDivisionError; - break; case SWIG_OverflowError: return PyExc_OverflowError; - break; case SWIG_SyntaxError: return PyExc_SyntaxError; - break; case SWIG_ValueError: return PyExc_ValueError; - break; case SWIG_SystemError: return PyExc_SystemError; - break; case SWIG_AttributeError: return PyExc_AttributeError; - break; default: return PyExc_RuntimeError; - break; } } diff --git a/SWIG/Lib/python/pywstrings.swg b/SWIG/Lib/python/pywstrings.swg index 319ee02b2..bd0dea188 100644 --- a/SWIG/Lib/python/pywstrings.swg +++ b/SWIG/Lib/python/pywstrings.swg @@ -26,7 +26,6 @@ SWIG_AsWCharPtrAndSize(PyObject *obj, wchar_t **cptr, size_t *psize, int *alloc) int len = PyUnicode_GetSize(obj); if (cptr) { *cptr = SWIG_new_array(len + 1, wchar_t); - memset(*cptr, 0, (len + 1)*sizeof(wchar_t)); PyUnicode_AsWideChar((PyUnicodeObject *)obj, *cptr, len); (*cptr)[len] = 0; } diff --git a/SWIG/Lib/ruby/rubyerrors.swg b/SWIG/Lib/ruby/rubyerrors.swg index ac76a289d..40af35de9 100644 --- a/SWIG/Lib/ruby/rubyerrors.swg +++ b/SWIG/Lib/ruby/rubyerrors.swg @@ -10,43 +10,30 @@ SWIG_Ruby_ErrorType(int SWIG_code) { switch (SWIG_code) { case SWIG_MemoryError: return rb_eNoMemError; - break; case SWIG_IOError: return rb_eIOError; - break; case SWIG_RuntimeError: return rb_eRuntimeError; - break; case SWIG_IndexError: return rb_eIndexError; - break; case SWIG_TypeError: return rb_eTypeError; - break; case SWIG_DivisionByZero: return rb_eZeroDivError; - break; case SWIG_OverflowError: return rb_eRangeError; - break; case SWIG_SyntaxError: return rb_eSyntaxError; - break; case SWIG_ValueError: return rb_eArgError; - break; case SWIG_SystemError: return rb_eFatal; - break; case SWIG_AttributeError: return rb_eRuntimeError; - break; case SWIG_UnknownError: return rb_eRuntimeError; - break; default: return rb_eRuntimeError; - break; } } diff --git a/SWIG/Lib/swiglabels.swg b/SWIG/Lib/swiglabels.swg index 529e61338..7af5ed637 100644 --- a/SWIG/Lib/swiglabels.swg +++ b/SWIG/Lib/swiglabels.swg @@ -7,8 +7,12 @@ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR -# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) -# define SWIGTEMPLATEDISAMBIGUATOR template +# if defined(__SUNPRO_CC) +# if (__SUNPRO_CC <= 0x560) +# define SWIGTEMPLATEDISAMBIGUATOR template +# else +# define SWIGTEMPLATEDISAMBIGUATOR +# endif # else # define SWIGTEMPLATEDISAMBIGUATOR # endif diff --git a/SWIG/Lib/tcl/tclerrors.swg b/SWIG/Lib/tcl/tclerrors.swg index 30846e961..6dbc4ab99 100644 --- a/SWIG/Lib/tcl/tclerrors.swg +++ b/SWIG/Lib/tcl/tclerrors.swg @@ -10,40 +10,28 @@ SWIG_Tcl_ErrorType(int code) { switch(code) { case SWIG_MemoryError: return "MemoryError"; - break; case SWIG_IOError: return "IOError"; - break; case SWIG_RuntimeError: return "RuntimeError"; - break; case SWIG_IndexError: return "IndexError"; - break; case SWIG_TypeError: return "TypeError"; - break; case SWIG_DivisionByZero: return "ZeroDivisionError"; - break; case SWIG_OverflowError: return "OverflowError"; - break; case SWIG_SyntaxError: return "SyntaxError"; - break; case SWIG_ValueError: return "ValueError"; - break; case SWIG_SystemError: return "SystemError"; - break; case SWIG_AttributeError: return "AttributeError"; - break; default: return "RuntimeError"; - break; } } diff --git a/SWIG/Lib/typemaps/strings.swg b/SWIG/Lib/typemaps/strings.swg index c5e961bb4..a34a170ed 100644 --- a/SWIG/Lib/typemaps/strings.swg +++ b/SWIG/Lib/typemaps/strings.swg @@ -482,7 +482,7 @@ SWIG_As##CharName##Array(SWIG_Object obj, Char *val, size_t size) if ((csize == size + 1) && cptr && !(cptr[csize-1])) --csize; if (csize <= size) { if (val) { - if (csize) memcpy(val, cptr, csize); + if (csize) memcpy(val, cptr, csize*sizeof(Char)); if (csize < size) memset(val + csize, 0, (size - csize)*sizeof(Char)); if (alloc == SWIG_NEWOBJ) SWIG_delete_array(cptr); } diff --git a/SWIG/Source/Modules/emit.cxx b/SWIG/Source/Modules/emit.cxx index aa03a6308..3c3e83a9f 100644 --- a/SWIG/Source/Modules/emit.cxx +++ b/SWIG/Source/Modules/emit.cxx @@ -36,12 +36,14 @@ void emit_args(SwigType *rt, ParmList *l, Wrapper *f) { /* Handle return type */ if (rt && (SwigType_type(rt) != T_VOID)) { - SwigType *vt = 0; - vt = cplus_value_type(rt); - if (!vt) { - Wrapper_add_local(f,"result", SwigType_lstr(rt,"result")); - } else { - Wrapper_add_local(f,"result", SwigType_lstr(vt,"result")); + SwigType *vt = cplus_value_type(rt); + SwigType *tt = vt ? vt : rt; + if (SwigType_ispointer(tt)) { + Wrapper_add_localv(f,"result", SwigType_lstr(tt,"result"), "= 0", NULL); + } else{ + Wrapper_add_local(f,"result", SwigType_lstr(tt,"result")); + } + if (vt) { Delete(vt); } } diff --git a/SWIG/Source/Modules/python.cxx b/SWIG/Source/Modules/python.cxx index 2334b6823..51f6f9af0 100644 --- a/SWIG/Source/Modules/python.cxx +++ b/SWIG/Source/Modules/python.cxx @@ -2781,7 +2781,7 @@ int PYTHON::classDirectorMethod(Node *n, Node *parent, String *super) { } /* declare Python return value */ if (!is_void) { - Wrapper_add_local(w, "result", "PyObject *result"); + Wrapper_add_local(w, "result", "PyObject *result = 0"); } /* direct call to superclass if _up is set */