I'm porting an application from using char*
for everything and everywhere to using UCS4 as it's internal Unicode representation. I use C11's U"unicode literals"
for defining strings, which expand to arrays of char32_t
, which are uint32_t
essentially.
Problem is with properly annotating printf
-like functions. As "format" is no longer char*
, compiler refuses to compile it further, as well it won't be happy with char32_t *
instead of char *
for %s
format, I suppose.
I don't depend on stdlib *printf
family at all, so formatting is done purely by mine implementation.
What is correct solution for this, other than just disable this attribute altogether?
There is currently no way to do this in GCC. It is a known bug, see GCC bug 64862
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With