[PHP] Fix many occurrences of "warning: deprecated conversion from

string constant to 'char*'" from GCC 4.2 in generated C/C++ code.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9992 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Olly Betts 2007-10-16 21:39:37 +00:00
commit 1b1334815c
5 changed files with 54 additions and 54 deletions

View file

@ -1,6 +1,10 @@
Version 1.3.32 (in progress) Version 1.3.32 (in progress)
============================ ============================
10/16/2007: olly
[PHP] Fix many occurrences of "warning: deprecated conversion from
string constant to 'char*'" from GCC 4.2 in generated C/C++ code.
10/15/2007: wsfulton 10/15/2007: wsfulton
Patch #1797133 from David Piepgrass fixes %attribute when the getter has the same name Patch #1797133 from David Piepgrass fixes %attribute when the getter has the same name
as the attribute name and no longer generate non-functional setter for read-only attributes. as the attribute name and no longer generate non-functional setter for read-only attributes.

View file

@ -17,22 +17,22 @@
signed char, signed char,
bool, bool,
enum SWIGTYPE enum SWIGTYPE
"REGISTER_LONG_CONSTANT(\"$symname\", $value, CONST_CS | CONST_PERSISTENT);"; "REGISTER_LONG_CONSTANT((char*)\"$symname\", $value, CONST_CS | CONST_PERSISTENT);";
%typemap(consttab) float, %typemap(consttab) float,
double double
"REGISTER_DOUBLE_CONSTANT(\"$symname\", $value, CONST_CS | CONST_PERSISTENT);"; "REGISTER_DOUBLE_CONSTANT((char*)\"$symname\", $value, CONST_CS | CONST_PERSISTENT);";
%typemap(consttab) char { %typemap(consttab) char {
static char swig_char = $value; static char swig_char = $value;
REGISTER_STRINGL_CONSTANT("$symname", &swig_char, 1, CONST_CS | CONST_PERSISTENT); REGISTER_STRINGL_CONSTANT((char*)"$symname", &swig_char, 1, CONST_CS | CONST_PERSISTENT);
} }
%typemap(consttab) char *, %typemap(consttab) char *,
const char *, const char *,
char [], char [],
const char [] const char []
"REGISTER_STRINGL_CONSTANT(\"$symname\", $value, strlen($value), CONST_CS | CONST_PERSISTENT);"; "REGISTER_STRINGL_CONSTANT((char*)\"$symname\", $value, strlen($value), CONST_CS | CONST_PERSISTENT);";
%typemap(consttab) SWIGTYPE *, %typemap(consttab) SWIGTYPE *,
SWIGTYPE &, SWIGTYPE &,

View file

@ -20,7 +20,7 @@
z_var->value.str.val = 0; z_var->value.str.val = 0;
z_var->value.str.len = 0; z_var->value.str.len = 0;
} }
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, sizeof(zval *), NULL); zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void *)&z_var, sizeof(zval *), NULL);
} }
%typemap(varinit) int, %typemap(varinit) int,
@ -38,7 +38,7 @@
MAKE_STD_ZVAL(z_var); MAKE_STD_ZVAL(z_var);
z_var->type = IS_LONG; z_var->type = IS_LONG;
z_var->value.lval = $1; z_var->value.lval = $1;
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, sizeof(zval *), NULL); zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void *)&z_var, sizeof(zval *), NULL);
} }
%typemap(varinit) bool %typemap(varinit) bool
@ -47,7 +47,7 @@
MAKE_STD_ZVAL(z_var); MAKE_STD_ZVAL(z_var);
z_var->type = IS_BOOL; z_var->type = IS_BOOL;
z_var->value.lval = ($1)?1:0; z_var->value.lval = ($1)?1:0;
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, sizeof(zval *), NULL); zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void *)&z_var, sizeof(zval *), NULL);
} }
%typemap(varinit) float, double %typemap(varinit) float, double
@ -56,7 +56,7 @@
MAKE_STD_ZVAL(z_var); MAKE_STD_ZVAL(z_var);
z_var->type = IS_DOUBLE; z_var->type = IS_DOUBLE;
z_var->value.dval = $1; z_var->value.dval = $1;
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void *)&z_var,
sizeof(zval *), NULL); sizeof(zval *), NULL);
} }
@ -70,7 +70,7 @@
z_var->type = IS_STRING; z_var->type = IS_STRING;
z_var->value.str.val = estrndup(c, 1); z_var->value.str.val = estrndup(c, 1);
z_var->value.str.len = 1; z_var->value.str.len = 1;
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void *)&z_var,
sizeof(zval *), NULL); sizeof(zval *), NULL);
} }
@ -79,7 +79,7 @@
zval *z_var; zval *z_var;
MAKE_STD_ZVAL(z_var); MAKE_STD_ZVAL(z_var);
SWIG_SetPointerZval(z_var, (void*)$1, $1_descriptor, 0); SWIG_SetPointerZval(z_var, (void*)$1, $1_descriptor, 0);
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void *)&z_var,
sizeof(zval *), NULL); sizeof(zval *), NULL);
} }
@ -90,30 +90,29 @@
MAKE_STD_ZVAL(z_var); MAKE_STD_ZVAL(z_var);
SWIG_SetPointerZval(z_var, (void*)&$1, $&1_descriptor, 0); SWIG_SetPointerZval(z_var, (void*)&$1, $&1_descriptor, 0);
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void*)&z_var, zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void*)&z_var,
sizeof(zval *), NULL); sizeof(zval *), NULL);
} }
%typemap(varinit) char [ANY] %typemap(varinit) char [ANY]
{ {
zval *z_var; zval *z_var;
MAKE_STD_ZVAL(z_var); MAKE_STD_ZVAL(z_var);
z_var->type = IS_STRING; z_var->type = IS_STRING;
if($1) { if ($1) {
// varinit char [ANY] // varinit char [ANY]
ZVAL_STRINGL(z_var,(char*)$1, $1_dim0, 1); ZVAL_STRINGL(z_var,(char*)$1, $1_dim0, 1);
} }
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void*)&z_var, zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void*)&z_var, sizeof(zval *), NULL);
sizeof(zval *), NULL);
} }
%typemap(varin) int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char, enum SWIGTYPE %typemap(varin) int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char, enum SWIGTYPE
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1",strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
convert_to_long_ex(z_var); convert_to_long_ex(z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) { if ($1 != ($1_ltype)((*z_var)->value.lval)) {
$1 = Z_LVAL_PP(z_var); $1 = Z_LVAL_PP(z_var);
} }
} }
@ -122,9 +121,9 @@
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1",strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
convert_to_boolean_ex(z_var); convert_to_boolean_ex(z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) { if ($1 != ($1_ltype)((*z_var)->value.lval)) {
$1 = Z_LVAL_PP(z_var); $1 = Z_LVAL_PP(z_var);
} }
} }
@ -133,9 +132,9 @@
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
convert_to_double_ex(z_var); convert_to_double_ex(z_var);
if($1 != ($1_ltype)((*z_var)->value.dval)) { if ($1 != ($1_ltype)((*z_var)->value.dval)) {
$1 = Z_DVAL_PP(z_var); $1 = Z_DVAL_PP(z_var);
} }
} }
@ -144,9 +143,9 @@
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1",strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
convert_to_string_ex(z_var); convert_to_string_ex(z_var);
if($1 != *((*z_var)->value.str.val)) { if ($1 != *((*z_var)->value.str.val)) {
$1 = *((*z_var)->value.str.val); $1 = *((*z_var)->value.str.val);
} }
} }
@ -156,11 +155,11 @@
zval **z_var; zval **z_var;
char *s1; char *s1;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
convert_to_string_ex(z_var); convert_to_string_ex(z_var);
s1 = Z_STRVAL_PP(z_var); s1 = Z_STRVAL_PP(z_var);
if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) { if ((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) {
if(s1) if (s1)
$1 = estrdup(s1); $1 = estrdup(s1);
else else
$1 = NULL; $1 = NULL;
@ -172,7 +171,7 @@
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if($1) { if($1) {
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, $owner); SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, $owner);
} }
@ -183,7 +182,7 @@
zval **z_var; zval **z_var;
char *s1; char *s1;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
s1 = Z_STRVAL_PP(z_var); s1 = Z_STRVAL_PP(z_var);
if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) { if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) {
if(s1) if(s1)
@ -196,7 +195,7 @@
zval **z_var; zval **z_var;
$&1_ltype _temp; $&1_ltype _temp;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if (SWIG_ConvertPtr(*z_var, (void**)&_temp, $&1_descriptor, 0) < 0) { if (SWIG_ConvertPtr(*z_var, (void**)&_temp, $&1_descriptor, 0) < 0) {
SWIG_PHP_Error(E_ERROR,"Type error in value of $symname. Expected $&1_descriptor"); SWIG_PHP_Error(E_ERROR,"Type error in value of $symname. Expected $&1_descriptor");
} }
@ -210,7 +209,7 @@
zval **z_var; zval **z_var;
$1_ltype _temp; $1_ltype _temp;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if (SWIG_ConvertPtr(*z_var, (void **)&_temp, $1_descriptor, 0) < 0) { if (SWIG_ConvertPtr(*z_var, (void **)&_temp, $1_descriptor, 0) < 0) {
SWIG_PHP_Error(E_ERROR,"Type error in value of $symname. Expected $&1_descriptor"); SWIG_PHP_Error(E_ERROR,"Type error in value of $symname. Expected $&1_descriptor");
} }
@ -229,7 +228,7 @@
enum SWIGTYPE enum SWIGTYPE
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) { if($1 != ($1_ltype)((*z_var)->value.lval)) {
(*z_var)->value.lval = (long)$1; (*z_var)->value.lval = (long)$1;
} }
@ -239,7 +238,7 @@
%typemap(varout) bool %typemap(varout) bool
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) { if($1 != ($1_ltype)((*z_var)->value.lval)) {
(*z_var)->value.lval = (long)$1; (*z_var)->value.lval = (long)$1;
} }
@ -248,7 +247,7 @@
%typemap(varout) double, float %typemap(varout) double, float
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if($1 != ($1_ltype)((*z_var)->value.dval)) { if($1 != ($1_ltype)((*z_var)->value.dval)) {
(*z_var)->value.dval = (double)$1; (*z_var)->value.dval = (double)$1;
} }
@ -257,7 +256,7 @@
%typemap(varout) char %typemap(varout) char
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if($1 != *((*z_var)->value.str.val)) { if($1 != *((*z_var)->value.str.val)) {
char c[2]; char c[2];
efree((*z_var)->value.str.val); efree((*z_var)->value.str.val);
@ -272,7 +271,7 @@
zval **z_var; zval **z_var;
char *s1; char *s1;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
s1 = Z_STRVAL_PP(z_var); s1 = Z_STRVAL_PP(z_var);
if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1) )) { if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1) )) {
if(s1) if(s1)
@ -291,7 +290,7 @@
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
SWIG_SetPointerZval(*z_var, (void*)&$1, $&1_descriptor, 0); SWIG_SetPointerZval(*z_var, (void*)&$1, $&1_descriptor, 0);
} }
@ -299,7 +298,7 @@
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
if($1) if($1)
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0); SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0);
} }
@ -309,10 +308,9 @@
zval **z_var; zval **z_var;
char *s1; char *s1;
deliberate error cos this code looks bogus to me deliberate error cos this code looks bogus to me
zend_hash_find(&EG(symbol_table), "$1" ,strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
s1 = Z_STRVAL_PP(z_var); s1 = Z_STRVAL_PP(z_var);
if((s1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) { if((s1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) {
if($1) { if($1) {
(*z_var)->value.str.val = estrdup($1); (*z_var)->value.str.val = estrdup($1);
(*z_var)->value.str.len = strlen($1)+1; (*z_var)->value.str.len = strlen($1)+1;
@ -327,7 +325,7 @@ deliberate error cos this code looks bogus to me
{ {
zval **z_var; zval **z_var;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var); zend_hash_find(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void**)&z_var);
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0); SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0);
} }

View file

@ -41,7 +41,7 @@ extern "C" {
#define SWIG_fail goto fail #define SWIG_fail goto fail
static char *default_error_msg = "Unknown error occurred"; static const char *default_error_msg = "Unknown error occurred";
static int default_error_code = E_ERROR; static int default_error_code = E_ERROR;
#define SWIG_PHP_Arg_Error_Msg(argnum,extramsg) "Error in argument " #argnum " "#extramsg #define SWIG_PHP_Arg_Error_Msg(argnum,extramsg) "Error in argument " #argnum " "#extramsg
@ -156,7 +156,7 @@ SWIG_ZTS_ConvertPtr(zval *z, void **ptr, swig_type_info *ty, int flags TSRMLS_DC
switch (z->type) { switch (z->type) {
case IS_OBJECT: { case IS_OBJECT: {
zval ** _cPtr; zval ** _cPtr;
if (zend_hash_find(HASH_OF(z),"_cPtr",sizeof("_cPtr"),(void**)&_cPtr)==SUCCESS) { if (zend_hash_find(HASH_OF(z),(char*)"_cPtr",sizeof("_cPtr"),(void**)&_cPtr)==SUCCESS) {
if ((*_cPtr)->type==IS_RESOURCE) { if ((*_cPtr)->type==IS_RESOURCE) {
*ptr = SWIG_ZTS_ConvertResourcePtr(*_cPtr, ty, flags TSRMLS_CC); *ptr = SWIG_ZTS_ConvertResourcePtr(*_cPtr, ty, flags TSRMLS_CC);
return (*ptr == NULL ? -1 : 0); return (*ptr == NULL ? -1 : 0);

View file

@ -634,7 +634,7 @@ public:
/* start the header section */ /* start the header section */
Printf(s_header, "ZEND_BEGIN_MODULE_GLOBALS(%s)\n", module); Printf(s_header, "ZEND_BEGIN_MODULE_GLOBALS(%s)\n", module);
Printf(s_header, "char *error_msg;\n"); Printf(s_header, "const char *error_msg;\n");
Printf(s_header, "int error_code;\n"); Printf(s_header, "int error_code;\n");
Printf(s_header, "ZEND_END_MODULE_GLOBALS(%s)\n", module); Printf(s_header, "ZEND_END_MODULE_GLOBALS(%s)\n", module);
Printf(s_header, "ZEND_DECLARE_MODULE_GLOBALS(%s)\n", module); Printf(s_header, "ZEND_DECLARE_MODULE_GLOBALS(%s)\n", module);
@ -718,7 +718,7 @@ public:
/* start the init section */ /* start the init section */
Printv(s_init, "zend_module_entry ", module, "_module_entry = {\n" "#if ZEND_MODULE_API_NO > 20010900\n" " STANDARD_MODULE_HEADER,\n" "#endif\n", NIL); Printv(s_init, "zend_module_entry ", module, "_module_entry = {\n" "#if ZEND_MODULE_API_NO > 20010900\n" " STANDARD_MODULE_HEADER,\n" "#endif\n", NIL);
Printf(s_init, " \"%s\",\n", module); Printf(s_init, " (char*)\"%s\",\n", module);
Printf(s_init, " %s_functions,\n", module); Printf(s_init, " %s_functions,\n", module);
Printf(s_init, " PHP_MINIT(%s),\n", module); Printf(s_init, " PHP_MINIT(%s),\n", module);
Printf(s_init, " PHP_MSHUTDOWN(%s),\n", module); Printf(s_init, " PHP_MSHUTDOWN(%s),\n", module);
@ -862,11 +862,9 @@ public:
return; return;
} }
Printf(f_h, "ZEND_NAMED_FUNCTION(%s);\n", iname); Printf(f_h, "ZEND_NAMED_FUNCTION(%s);\n", iname);
if (cs_entry) { String * s = cs_entry;
Printf(cs_entry, " ZEND_NAMED_FE(%(lower)s,%s,NULL)\n", cname, iname); if (!s) s = s_entry;
} else { Printf(s, " ZEND_RAW_FENTRY((char*)\"%(lower)s\",%s,NULL,0)\n", cname, iname);
Printf(s_entry, " ZEND_NAMED_FE(%(lower)s,%s,NULL)\n", cname, iname);
}
} }
/* ------------------------------------------------------------ /* ------------------------------------------------------------