-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[libc] Clean up 'vasprintf' implementation #111761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary: This had some leftover references to the old namespace and didn't put restrict on it.
|
@llvm/pr-subscribers-libc Author: Joseph Huber (jhuber6) ChangesSummary: Full diff: https://github.com/llvm/llvm-project/pull/111761.diff 5 Files Affected:
diff --git a/libc/src/stdio/asprintf.cpp b/libc/src/stdio/asprintf.cpp
index 88b458a9e103bf..f8cfb74ce48ea2 100644
--- a/libc/src/stdio/asprintf.cpp
+++ b/libc/src/stdio/asprintf.cpp
@@ -11,10 +11,11 @@
#include "src/__support/macros/config.h"
#include "src/stdio/printf_core/vasprintf_internal.h"
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
LLVM_LIBC_FUNCTION(int, asprintf,
- (char **__restrict buffer, const char *format, ...)) {
+ (char **__restrict buffer, const char *__restrict format,
+ ...)) {
va_list vlist;
va_start(vlist, format);
internal::ArgList args(vlist); // This holder class allows for easier copying
@@ -25,4 +26,4 @@ LLVM_LIBC_FUNCTION(int, asprintf,
return ret;
}
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/asprintf.h b/libc/src/stdio/asprintf.h
index 0c0d5a350829e7..222dfdee9d4fd7 100644
--- a/libc/src/stdio/asprintf.h
+++ b/libc/src/stdio/asprintf.h
@@ -13,7 +13,7 @@
namespace LIBC_NAMESPACE {
-int asprintf(char **__restrict s, const char *format, ...);
+int asprintf(char **__restrict s, const char *__restrict format, ...);
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdio/printf_core/vasprintf_internal.h b/libc/src/stdio/printf_core/vasprintf_internal.h
index 24ebc02a0b33f2..e3448eebd302b7 100644
--- a/libc/src/stdio/printf_core/vasprintf_internal.h
+++ b/libc/src/stdio/printf_core/vasprintf_internal.h
@@ -13,7 +13,7 @@
#include "src/stdio/printf_core/writer.h"
#include <stdlib.h> // malloc, realloc, free
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
namespace printf_core {
LIBC_INLINE int resize_overflow_hook(cpp::string_view new_str, void *target) {
@@ -40,7 +40,7 @@ LIBC_INLINE int resize_overflow_hook(cpp::string_view new_str, void *target) {
constexpr size_t DEFAULT_BUFFER_SIZE = 200;
-LIBC_INLINE int vasprintf_internal(char **ret, const char *format,
+LIBC_INLINE int vasprintf_internal(char **ret, const char *__restrict format,
internal::ArgList args) {
char init_buff_on_stack[DEFAULT_BUFFER_SIZE];
printf_core::WriteBuffer wb(init_buff_on_stack, DEFAULT_BUFFER_SIZE,
@@ -64,4 +64,4 @@ LIBC_INLINE int vasprintf_internal(char **ret, const char *format,
return ret_val;
}
} // namespace printf_core
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/vasprintf.cpp b/libc/src/stdio/vasprintf.cpp
index 7fa4cc6f127dda..4a44d4a0f88426 100644
--- a/libc/src/stdio/vasprintf.cpp
+++ b/libc/src/stdio/vasprintf.cpp
@@ -10,14 +10,15 @@
#include "src/__support/arg_list.h"
#include "src/stdio/printf_core/vasprintf_internal.h"
-namespace LIBC_NAMESPACE {
+namespace LIBC_NAMESPACE_DECL {
LLVM_LIBC_FUNCTION(int, vasprintf,
- (char **__restrict ret, const char *format, va_list vlist)) {
+ (char **__restrict ret, const char *__restrict format,
+ va_list vlist)) {
internal::ArgList args(vlist); // This holder class allows for easier copying
// and pointer semantics, as well as handling
// destruction automatically.
return printf_core::vasprintf_internal(ret, format, args);
}
-} // namespace LIBC_NAMESPACE
+} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/stdio/vasprintf.h b/libc/src/stdio/vasprintf.h
index 792e948cf1850c..8b286fe69bf203 100644
--- a/libc/src/stdio/vasprintf.h
+++ b/libc/src/stdio/vasprintf.h
@@ -13,7 +13,8 @@
namespace LIBC_NAMESPACE {
-int vasprintf(char **__restrict s, const char *format, va_list vlist);
+int vasprintf(char **__restrict s, const char *__restrict format,
+ va_list vlist);
} // namespace LIBC_NAMESPACE
|
michaelrj-google
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Patch LGTM, just looks like you missed the namespace in the headers
|
|
||
| #include "src/__support/macros/config.h" | ||
|
|
||
| namespace LIBC_NAMESPACE { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like this namespace might have gotten missed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could've sworn I added those, maybe I forgot to save the file or something. I'll just push it in a follow up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That made the bot unhappy it seems, I'll fix it.
|
|
||
| #include <stdarg.h> | ||
|
|
||
| namespace LIBC_NAMESPACE { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and this namespace
Summary: This had some leftover references to the old namespace and didn't put restrict on it.
Summary:
This had some leftover references to the old namespace and didn't put
restrict on it.