[libc-commits] [PATCH] D158774: [libc] Add GPU support for `printf` and `fprintf`
Michael Jones via Phabricator via libc-commits
libc-commits at lists.llvm.org
Wed Sep 6 13:11:57 PDT 2023
michaelrj added inline comments.
================
Comment at: libc/src/stdio/gpu/parser.h:131
+ while (format[cur_pos] != '\0' && internal::isdigit(format[cur_pos]))
+ ++cur_pos;
+ if (format[cur_pos] == '.') {
----------------
to handle the `*`s you could check if `format[cur_pos]=='*'` after this loop and if true set `unfinished` and return a specifier with the int.
If you make `unfinished` an enum with three states - `finished`, `width`, and `precision` - then you can set it to `width` here and `precision` after precision. This lets you skip all the loops before the point you're resuming to, which also makes it more accurate by avoiding consuming flags in invalid positions (e.g. the current parser would accept `%-*-d` since it loops through the flags again after each `*`).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D158774/new/
https://reviews.llvm.org/D158774
More information about the libc-commits
mailing list