Error numbers are signed ints. EUNIQ() should not allow implicit type
promotion based on the supplied error diambiguator, because this
causes problems with statements such as
rc = ( condition ? -EUNIQ ( EBASE, disambiguator ) : -EBASE );
Signed-off-by: Michael Brown <mcb30@ipxe.org>
*/
#define EUNIQ( errno, uniq, ... ) ( { \
euniq_discard ( 0, ##__VA_ARGS__); \
- ( (errno) | ( (uniq) << 8 ) ); } )
+ ( ( int ) ( (errno) | ( (uniq) << 8 ) ) ); } )
static inline void euniq_discard ( int dummy __unused, ... ) {}
/**