With clang 3.9.0, compiling uplcom results in the following warnings:
sys/dev/usb/serial/uplcom.c:543:29: error: implicit conversion from 'int' to 'int8_t' (aka 'signed char') changes value from 192 to -64 [-Werror,-Wconstant-conversion] if (uplcom_pl2303_do(udev, UT_READ_VENDOR_DEVICE, UPLCOM_SET_REQUEST, 0x8484, 0, 1) ~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~ sys/dev/usb/usb.h:179:53: note: expanded from macro 'UT_READ_VENDOR_DEVICE' #define UT_READ_VENDOR_DEVICE (UT_READ | UT_VENDOR | UT_DEVICE) ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ This is because UT_READ is 0x80, so the int8_t argument is wrapped to a negative value. Fix this by using uint8_t instead. Reviewed by: imp, hselasky MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D7776
This commit is contained in:
parent
591df14528
commit
02d4a225db
@ -166,7 +166,7 @@ struct uplcom_softc {
|
||||
/* prototypes */
|
||||
|
||||
static usb_error_t uplcom_reset(struct uplcom_softc *, struct usb_device *);
|
||||
static usb_error_t uplcom_pl2303_do(struct usb_device *, int8_t, uint8_t,
|
||||
static usb_error_t uplcom_pl2303_do(struct usb_device *, uint8_t, uint8_t,
|
||||
uint16_t, uint16_t, uint16_t);
|
||||
static int uplcom_pl2303_init(struct usb_device *, uint8_t);
|
||||
static void uplcom_free(struct ucom_softc *);
|
||||
@ -514,7 +514,7 @@ uplcom_reset(struct uplcom_softc *sc, struct usb_device *udev)
|
||||
}
|
||||
|
||||
static usb_error_t
|
||||
uplcom_pl2303_do(struct usb_device *udev, int8_t req_type, uint8_t request,
|
||||
uplcom_pl2303_do(struct usb_device *udev, uint8_t req_type, uint8_t request,
|
||||
uint16_t value, uint16_t index, uint16_t length)
|
||||
{
|
||||
struct usb_device_request req;
|
||||
|
Loading…
Reference in New Issue
Block a user