restore dtostrf when floats are disabled in printf/scanf + round fix#7093
restore dtostrf when floats are disabled in printf/scanf + round fix#7093devyte merged 7 commits intoesp8266:masterfrom
Conversation
earlephilhower
left a comment
There was a problem hiding this comment.
Looks like the if (function pointer) is not optimized. Both branches are present in all builds (float and non-float). That gives a 554-byte function in both cases. In normal mode, ~500 of those bytes are never used (the __dtostrf inlined code), and in non-float mode ~50 of those aren't used (the printf() branch).
I think this may be the best we can hope for, without adding a new #define like your original PR, so I'm approving as-is. If someone else has any ideas, I'd be interested...
|
I am too interested in another solution because I see only the use of the define to not have the real implementation when printf-float is available. That's because the symbol presence cannot be known at compile time. @earlephilhower with a patch to newlib, we could condition linking of |
|
diff from original dtostrf is |
replaces and closes #7087
(edit: tested)
fixes #7073 with solution 6
updates #7068
fixes #7043
(no need for
-DNOPRINTFLOAT)