[libc-commits] [PATCH] D126831: [libc] add printf
Siva Chandra via Phabricator via libc-commits
libc-commits at lists.llvm.org
Fri Jun 10 12:12:06 PDT 2022
sivachandra added inline comments.
================
Comment at: libc/src/stdio/printf.cpp:33
+ __llvm_libc::stdout->lock();
int ret_val = printf_core::printf_main(&writer, format, args);
----------------
Nit: There is an RAII file lock:
```
__llvm_libc::File::FileLock lock(__llvm_libc::stdout);
```
Couple of things more:
1. It seems to me like this is not the place to do the lock/unlock and call to error_unlocked. It should be managed by the file writer and the errors should be surfaced to printf_main. See another comment below.
2. `printf` and `fprintf` should share code in some manner instead of being mostly duplicated.
================
Comment at: libc/src/stdio/printf_core/writer.h:41
+ // negative value.
void write(const char *new_string, size_t length);
----------------
If this method returns an int value, which can be negative on error, printf_main can do an early return as soon as it sees an error. If this is OK, you should do the same with the converter functions. Why is that not a preferred design?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126831/new/
https://reviews.llvm.org/D126831
More information about the libc-commits
mailing list