ADL_AT_PORT_TYPE gives MSVC warning C4554


Every use of ADL_AT_PORT_TYPE in dwl_ftp.c in the Application Download sample gives the following MSVC warning:

(where x is the line number).

ADL_AT_PORT_TYPE is defined in the standard Wavecom header adl_ResHandler.h

// Macro to specify Response destination port and type
#define ADL_AT_PORT_TYPE(_port_,_type_) ( u16 ) ( _port_ << 8 | _type_ )

Is there an updated version of this header available with an MSVC-“safe” definition? :unamused:


Actually, looking more closely, I think the problem is in the usage of the Macro in the dwl_ftp.c file; eg,

adl_atSendResponse( ADL_AT_PORT_TYPE( dwl_FlowId - ADL_FCM_FLOW_V24_UART1, ADL_AT_INT ), "." );

where the ADL_AT_PORT_TYPE macro will expand to:

(u16)( dwl_FlowId - ADL_FCM_FLOW_V24_UART1 << 8 | ADL_AT_INT  )

I presume that’s intended to be:

(u16)( (dwl_FlowId-ADL_FCM_FLOW_V24_UART1) << 8 | ADL_AT_INT  )

Or, if you’re really cautious:

(u16)( ((dwl_FlowId-ADL_FCM_FLOW_V24_UART1) << 8) | ADL_AT_INT  )