+-- On Mon, 23 Mar 2020, P J P wrote --+
| +-- On Mon, 23 Mar 2020, Jason Wang wrote --+
| | hw/net/tulip.c:305:20: error: initialization of ‘_Bool (*)(NetClientState
*)’
| | {aka ‘_Bool (*)(struct NetClientState *)’} from incompatible pointer type
‘int
| | (*)(NetClientState *)’ {aka ‘int (*)(struct NetClientState *)’}
| | [-Werror=incompatible-pointer-types]
| | .can_receive = tulip_can_receive,
| | ^~~~~~~~~~~~~~~~~
|
| Strange, I did not get it.
qemu/include/net.h:
typedef int (NetCanReceive)(NetClientState *);
typedef struct NetClientInfo {
...
NetCanReceive *can_receive;
...
}
@Jason,
Looking at the definition above, 'NetCanReceive' is returning an 'int' type.
When I change 'tulip_can_receive' to return a 'bool', I get the reverse error
hw/net/tulip.c:305:20: error: initialization of ‘int (*)(NetClientState *)’
{aka ‘int (*)(struct NetClientState *)’} from incompatible pointer type ‘_Bool
(*)(NetClientState *)’ {aka ‘_Bool (*)(struct NetClientState *)’}
[-Werror=incompatible-pointer-types]
305 | .can_receive = tulip_can_receive,
| ^~~~~~~~~~~~~~~~~
Maybe because of a stagged local change in your tree? (to confirm)