PHP 4.0 Bug #9360: Type of the parameter conflicts with previous declaration of function
| From: | amra at us dot ibm dot com | Date: | Tue, 20 Feb 2001 22:10:26 +0000 |
| Subject: | PHP 4.0 Bug #9360: Type of the parameter conflicts with previous declaration of function | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-47102@lists.php.net to get a copy of this message | ||
From: amra@us.ibm.com
Operating system: OS400
PHP version: 4.0.4pl1
PHP Bug Type: Compile Failure
Bug description: Type of the parameter conflicts with previous declaration of function
When compiling using a C compiler, it does not allow parameters that are defined as const to be
passed to a function that does not have the const qualifier in the prototype. Also, there are some
parameter mismatches. Details below.
---------- begin [main/network.c] ----------
ERROR :129 Type of the parameter conflicts with previous declaration of function .
INFORMATIONAL :129 Prototype has type pointer to unsigned character .
INFORMATIONAL :129 Argument has type pointer to constant unsigned character .
---------- end [network.qwobj] ----------
Line 129:
host_info = gethostbyname(host);
But host is const char *. So I had to change line to as follows:
host_info = gethostbyname((char *)host);
---------- begin [fsock.qwobj] ----------
ERROR :110 Type of the parameter conflicts with previous declaration of function .
INFORMATIONAL :110 Prototype has type pointer to unsigned character .
INFORMATIONAL :110 Argument has type pointer to constant unsigned character .
ERROR :183 Type of the parameter conflicts with previous declaration of function .
INFORMATIONAL :183 Prototype has type pointer to unsigned character .
INFORMATIONAL :183 Argument has type pointer to signed integer .
ERROR :183 Type of the parameter conflicts with previous declaration of function .
INFORMATIONAL :183 Prototype has type pointer to signed integer .
INFORMATIONAL :183 Argument has type pointer to unsigned integer .
---------- end [fsock.qwobj] ----------
Line 110:
host_info = gethostbyname((char *)addr);
But addr is const char *. So I had to change line to as follows:
host_info = gethostbyname((char *)addr);
Line 183:
Protoype for getsockopt is: getsockopt(int, int, int, char *, int *).
However, Line 183 contains:
if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, &len) < 0) {
where error is int and len is socklen_t. I had to change line to as follows:
if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, (char *)&error, (int *)&len) < 0) {
I hope that these types of changes are made, so as to compile easily on any platform.
--
Edit Bug report at: http://bugs.php.net/?id=9360&edit=1