projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
some minor --stack-auto improvements
[fw/sdcc]
/
device
/
lib
/
vprintf.c
diff --git
a/device/lib/vprintf.c
b/device/lib/vprintf.c
index a0b2d4c14e7b34ce1d6a6fcce67f90b89f1039bd..28b81d6c7ff7c9908da59356cbdd74d57714be55 100644
(file)
--- a/
device/lib/vprintf.c
+++ b/
device/lib/vprintf.c
@@
-22,6
+22,12
@@
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding!
-------------------------------------------------------------------------*/
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding!
-------------------------------------------------------------------------*/
+
+/* this module uses some global variables instead function parameters, so: */
+#ifdef SDCC_STACK_AUTO
+#warning "this module cannot yet be use as a reentrant one"
+#endif
+
#ifdef __ds390
#define USE_FLOATS 1
#endif
#ifdef __ds390
#define USE_FLOATS 1
#endif
@@
-72,7
+78,7
@@
static bit lsd;
/* this one NEEDS to be in data */
static data value_t value;
/* this one NEEDS to be in data */
static data value_t value;
-static unsigned
short
radix;
+static unsigned
char
radix;
// jwk: TODO: this makes the whole dammed thing nonreentrent
static int charsOutputted;
// jwk: TODO: this makes the whole dammed thing nonreentrent
static int charsOutputted;
@@
-252,14
+258,14
@@
static void output_float (float f, unsigned char reqWidth,
int vsprintf (const char *buf, const char *format, va_list ap)
{
int vsprintf (const char *buf, const char *format, va_list ap)
{
- bit left_justify;
- bit zero_padding;
- bit prefix_sign;
- bit prefix_space;
- bit signed_argument;
- bit char_argument;
- bit long_argument;
- bit float_argument;
+
static
bit left_justify;
+
static
bit zero_padding;
+
static
bit prefix_sign;
+
static
bit prefix_space;
+
static
bit signed_argument;
+
static
bit char_argument;
+
static
bit long_argument;
+
static
bit float_argument;
unsigned char width;
signed char decimals;
unsigned char width;
signed char decimals;