Use a different approach to range check.

gcc hates dt < CC_DT_NONE since it can never be true when dt is an unsigned
type. Since that's a compiler choice and may be affected by weird stuff, instead
use (unsigned)dt > CC_DT_UNKNOWN to test for bounds error since that will work
regardless of the signedness of dt.
This commit is contained in:
Warner Losh 2019-07-15 23:43:38 +00:00
parent f53a2a1f61
commit 237024606a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=350020

View File

@ -676,7 +676,7 @@ getdevtype(struct cam_device *cam_dev)
* Get the device type and report it, request no I/O be done to do this.
*/
error = get_device_type(cam_dev, -1, 0, 0, &dt);
if (error != 0 || dt < CC_DT_NONE || dt > CC_DT_UNKNOWN) {
if (error != 0 || (unsigned)dt > CC_DT_UNKNOWN) {
fprintf(stdout, "illegal\n");
return (1);
}