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
This commit is contained in:
Marcelo Matus 2005-10-19 14:26:13 +00:00
commit 8bcc0bf8eb
12 changed files with 24 additions and 65 deletions

View file

@ -220,8 +220,6 @@ macro(long, pfx, long)
macro(unsigned long, pfx, ulong) macro(unsigned long, pfx, ulong)
macro(long long, pfx, llong) macro(long long, pfx, llong)
macro(unsigned long long, pfx, ullong) macro(unsigned long long, pfx, ullong)
macro(float, pfx, float)
macro(double, pfx, double)
macro(char, pfx, char) macro(char, pfx, char)
%enddef %enddef
@ -463,6 +461,9 @@ macro(size_t, pfx, sizet)
return len; return len;
} }
static const double stc_double;
static const double stc_float;
}; };
@ -534,7 +535,6 @@ macro(size_t, pfx, sizet)
return t; return t;
} }
}; };
int v_check() int v_check()
@ -547,7 +547,6 @@ macro(size_t, pfx, sizet)
} }
%inline %{ %inline %{
const char* char_foo(float f, const char *s) { 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 %inline
%{ %{

View file

@ -11,8 +11,6 @@
A(int v): val(v) A(int v): val(v)
{ {
int a = 2;
a += (a +=1 ) = 5;
} }
A& operator+=(int v) A& operator+=(int v)

View file

@ -14,8 +14,6 @@ cvar.var_long = sct_long
cvar.var_ulong = sct_ulong cvar.var_ulong = sct_ulong
cvar.var_llong = sct_llong cvar.var_llong = sct_llong
cvar.var_ullong = sct_ullong cvar.var_ullong = sct_ullong
cvar.var_float = sct_float
cvar.var_double = sct_double
cvar.var_char = sct_char cvar.var_char = sct_char
cvar.var_pchar = sct_pchar cvar.var_pchar = sct_pchar
cvar.var_pcharc = sct_pcharc 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_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_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_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_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_pchar != cct_pchar: pyerror("pchar", cvar.var_pchar, cct_pchar)
if cvar.var_pcharc != cct_pcharc: pyerror("pchar", cvar.var_pcharc, cct_pcharc) 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_ulong = p.stc_ulong
p.var_llong = p.stc_llong p.var_llong = p.stc_llong
p.var_ullong = p.stc_ullong 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_char = p.stc_char
p.var_pchar = sct_pchar p.var_pchar = sct_pchar
p.var_pcharc = sct_pcharc p.var_pcharc = sct_pcharc
@ -156,8 +150,6 @@ t.var_long = t.stc_long
t.var_ulong = t.stc_ulong t.var_ulong = t.stc_ulong
t.var_llong = t.stc_llong t.var_llong = t.stc_llong
t.var_ullong = t.stc_ullong 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_char = t.stc_char
t.var_pchar = sct_pchar t.var_pchar = sct_pchar
t.var_pcharc = sct_pcharc t.var_pcharc = sct_pcharc

View file

@ -5,9 +5,6 @@ include Primitive_types
raise RuntimeError if val_uchar(255) != 255 raise RuntimeError if val_uchar(255) != 255
raise RuntimeError if val_double(255.5) != 255.5
fail = 0 fail = 0
begin begin
val_uchar(-1) val_uchar(-1)

View file

@ -10,40 +10,28 @@ SWIG_Python_ErrorType(int code) {
switch(code) { switch(code) {
case SWIG_MemoryError: case SWIG_MemoryError:
return PyExc_MemoryError; return PyExc_MemoryError;
break;
case SWIG_IOError: case SWIG_IOError:
return PyExc_IOError; return PyExc_IOError;
break;
case SWIG_RuntimeError: case SWIG_RuntimeError:
return PyExc_RuntimeError; return PyExc_RuntimeError;
break;
case SWIG_IndexError: case SWIG_IndexError:
return PyExc_IndexError; return PyExc_IndexError;
break;
case SWIG_TypeError: case SWIG_TypeError:
return PyExc_TypeError; return PyExc_TypeError;
break;
case SWIG_DivisionByZero: case SWIG_DivisionByZero:
return PyExc_ZeroDivisionError; return PyExc_ZeroDivisionError;
break;
case SWIG_OverflowError: case SWIG_OverflowError:
return PyExc_OverflowError; return PyExc_OverflowError;
break;
case SWIG_SyntaxError: case SWIG_SyntaxError:
return PyExc_SyntaxError; return PyExc_SyntaxError;
break;
case SWIG_ValueError: case SWIG_ValueError:
return PyExc_ValueError; return PyExc_ValueError;
break;
case SWIG_SystemError: case SWIG_SystemError:
return PyExc_SystemError; return PyExc_SystemError;
break;
case SWIG_AttributeError: case SWIG_AttributeError:
return PyExc_AttributeError; return PyExc_AttributeError;
break;
default: default:
return PyExc_RuntimeError; return PyExc_RuntimeError;
break;
} }
} }

View file

@ -26,7 +26,6 @@ SWIG_AsWCharPtrAndSize(PyObject *obj, wchar_t **cptr, size_t *psize, int *alloc)
int len = PyUnicode_GetSize(obj); int len = PyUnicode_GetSize(obj);
if (cptr) { if (cptr) {
*cptr = SWIG_new_array(len + 1, wchar_t); *cptr = SWIG_new_array(len + 1, wchar_t);
memset(*cptr, 0, (len + 1)*sizeof(wchar_t));
PyUnicode_AsWideChar((PyUnicodeObject *)obj, *cptr, len); PyUnicode_AsWideChar((PyUnicodeObject *)obj, *cptr, len);
(*cptr)[len] = 0; (*cptr)[len] = 0;
} }

View file

@ -10,43 +10,30 @@ SWIG_Ruby_ErrorType(int SWIG_code) {
switch (SWIG_code) { switch (SWIG_code) {
case SWIG_MemoryError: case SWIG_MemoryError:
return rb_eNoMemError; return rb_eNoMemError;
break;
case SWIG_IOError: case SWIG_IOError:
return rb_eIOError; return rb_eIOError;
break;
case SWIG_RuntimeError: case SWIG_RuntimeError:
return rb_eRuntimeError; return rb_eRuntimeError;
break;
case SWIG_IndexError: case SWIG_IndexError:
return rb_eIndexError; return rb_eIndexError;
break;
case SWIG_TypeError: case SWIG_TypeError:
return rb_eTypeError; return rb_eTypeError;
break;
case SWIG_DivisionByZero: case SWIG_DivisionByZero:
return rb_eZeroDivError; return rb_eZeroDivError;
break;
case SWIG_OverflowError: case SWIG_OverflowError:
return rb_eRangeError; return rb_eRangeError;
break;
case SWIG_SyntaxError: case SWIG_SyntaxError:
return rb_eSyntaxError; return rb_eSyntaxError;
break;
case SWIG_ValueError: case SWIG_ValueError:
return rb_eArgError; return rb_eArgError;
break;
case SWIG_SystemError: case SWIG_SystemError:
return rb_eFatal; return rb_eFatal;
break;
case SWIG_AttributeError: case SWIG_AttributeError:
return rb_eRuntimeError; return rb_eRuntimeError;
break;
case SWIG_UnknownError: case SWIG_UnknownError:
return rb_eRuntimeError; return rb_eRuntimeError;
break;
default: default:
return rb_eRuntimeError; return rb_eRuntimeError;
break;
} }
} }

View file

@ -7,8 +7,12 @@
/* template workaround for compilers that cannot correctly implement the C++ standard */ /* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR #ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # if defined(__SUNPRO_CC)
# define SWIGTEMPLATEDISAMBIGUATOR template # if (__SUNPRO_CC <= 0x560)
# define SWIGTEMPLATEDISAMBIGUATOR template
# else
# define SWIGTEMPLATEDISAMBIGUATOR
# endif
# else # else
# define SWIGTEMPLATEDISAMBIGUATOR # define SWIGTEMPLATEDISAMBIGUATOR
# endif # endif

View file

@ -10,40 +10,28 @@ SWIG_Tcl_ErrorType(int code) {
switch(code) { switch(code) {
case SWIG_MemoryError: case SWIG_MemoryError:
return "MemoryError"; return "MemoryError";
break;
case SWIG_IOError: case SWIG_IOError:
return "IOError"; return "IOError";
break;
case SWIG_RuntimeError: case SWIG_RuntimeError:
return "RuntimeError"; return "RuntimeError";
break;
case SWIG_IndexError: case SWIG_IndexError:
return "IndexError"; return "IndexError";
break;
case SWIG_TypeError: case SWIG_TypeError:
return "TypeError"; return "TypeError";
break;
case SWIG_DivisionByZero: case SWIG_DivisionByZero:
return "ZeroDivisionError"; return "ZeroDivisionError";
break;
case SWIG_OverflowError: case SWIG_OverflowError:
return "OverflowError"; return "OverflowError";
break;
case SWIG_SyntaxError: case SWIG_SyntaxError:
return "SyntaxError"; return "SyntaxError";
break;
case SWIG_ValueError: case SWIG_ValueError:
return "ValueError"; return "ValueError";
break;
case SWIG_SystemError: case SWIG_SystemError:
return "SystemError"; return "SystemError";
break;
case SWIG_AttributeError: case SWIG_AttributeError:
return "AttributeError"; return "AttributeError";
break;
default: default:
return "RuntimeError"; return "RuntimeError";
break;
} }
} }

View file

@ -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 + 1) && cptr && !(cptr[csize-1])) --csize;
if (csize <= size) { if (csize <= size) {
if (val) { 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 (csize < size) memset(val + csize, 0, (size - csize)*sizeof(Char));
if (alloc == SWIG_NEWOBJ) SWIG_delete_array(cptr); if (alloc == SWIG_NEWOBJ) SWIG_delete_array(cptr);
} }

View file

@ -36,12 +36,14 @@ void emit_args(SwigType *rt, ParmList *l, Wrapper *f) {
/* Handle return type */ /* Handle return type */
if (rt && (SwigType_type(rt) != T_VOID)) { if (rt && (SwigType_type(rt) != T_VOID)) {
SwigType *vt = 0; SwigType *vt = cplus_value_type(rt);
vt = cplus_value_type(rt); SwigType *tt = vt ? vt : rt;
if (!vt) { if (SwigType_ispointer(tt)) {
Wrapper_add_local(f,"result", SwigType_lstr(rt,"result")); Wrapper_add_localv(f,"result", SwigType_lstr(tt,"result"), "= 0", NULL);
} else { } else{
Wrapper_add_local(f,"result", SwigType_lstr(vt,"result")); Wrapper_add_local(f,"result", SwigType_lstr(tt,"result"));
}
if (vt) {
Delete(vt); Delete(vt);
} }
} }

View file

@ -2781,7 +2781,7 @@ int PYTHON::classDirectorMethod(Node *n, Node *parent, String *super) {
} }
/* declare Python return value */ /* declare Python return value */
if (!is_void) { 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 */ /* direct call to superclass if _up is set */