chardev: Use goto/label instead of do/break/while(0)
Use of a do/while(0) control flow in order to permit an early break is an unusual paradigm, and triggers a false positive with a planned future syntax check against 'while (0);'. Rewrite the code to use a goto instead. This patch temporarily keeps an extra level of indentation to highlight the change; the next patch cleans it up. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <20171201232433.25193-4-eblake@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
94f5c480e9
commit
19a4d43ef0
@ -64,9 +64,14 @@ static void tty_serial_init(int fd, int speed,
|
||||
#endif
|
||||
tcgetattr(fd, &tty);
|
||||
|
||||
#define check_speed(val) if (speed <= val) { spd = B##val; break; }
|
||||
#define check_speed(val) \
|
||||
if (speed <= val) { \
|
||||
spd = B##val; \
|
||||
goto done; \
|
||||
}
|
||||
|
||||
speed = speed * 10 / 11;
|
||||
do {
|
||||
{
|
||||
check_speed(50);
|
||||
check_speed(75);
|
||||
check_speed(110);
|
||||
@ -125,8 +130,10 @@ static void tty_serial_init(int fd, int speed,
|
||||
check_speed(4000000);
|
||||
#endif
|
||||
spd = B115200;
|
||||
} while (0);
|
||||
}
|
||||
|
||||
#undef check_speed
|
||||
done:
|
||||
cfsetispeed(&tty, spd);
|
||||
cfsetospeed(&tty, spd);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user