Re: incompatible integer to pointer conversion

From: Brooks Davis <brooks_at_freebsd.org>
Date: Thu, 23 May 2024 21:50:38 UTC
On Thu, May 23, 2024 at 02:40:59PM -0700, Chris wrote:
> Sorry, this is really a basic "programming in C 101" question.
> But for the life of me, I'm not getting it. The source in
> question:
> 
> LDAP *setup_ldap()
> {
> 	LDAP *ret;
> 	int n;
> 
> 	if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n",
> 			   host, port);
> 	if (!(ret = ldap_init(host, port))) {
> 		fprintf(stderr, "radldap: Could not initialize LDAP!\n");
> 		_exit(2);
> 	}
> 
> Now *you* can probably already see the problem. But this is what's returned:
> 
> radldap.c:302:12: error: incompatible integer to pointer conversion assigning
> to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion]
>   302 |         if (!(ret = ldap_init(host, port))) {
>       |                   ^ ~~~~~~~~~~~~~~~~~~~~~
> 
> Thanks in advance for any hints, or pointers.
> 

Have you included ldap.h?  Are there any warnings about implicit
declarations?

-- Brooks