summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kc/core/kprint.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/kc/core/kprint.c b/kc/core/kprint.c
index 5a0fffd..8c2bf12 100644
--- a/kc/core/kprint.c
+++ b/kc/core/kprint.c
@@ -6,13 +6,11 @@
#include <stdint.h>
#include <stdbool.h>
- __attribute__((optimize("O3")))
int kputchar(int c)
{
return serial_putchar(c);
}
- __attribute__((optimize("O3")))
int kputs(const char *s)
{
int count = 0;
@@ -301,13 +299,14 @@ static char *convert_integer(
// at the last byte of the string
char *result = buffer + bufsz - 1;
- // result >= buffer condition ensures we don't overflow
+ // result >= buffer condition ensures we don't underflow
- while (value > 0 && result >= buffer)
+ do
{
*--result = stringdigits[value % base];
value /= base;
- }
+ }
+ while (value > 0 && result >= buffer);
return result;
}