[libc-commits] [libc] [libc] Fix hdrgen output for no-argument functions (PR #123245)

Roland McGrath via libc-commits libc-commits at lists.llvm.org
Thu Jan 16 14:01:12 PST 2025


https://github.com/frobtech created https://github.com/llvm/llvm-project/pull/123245

The hdrgen output is C, not C++.


>From de22bccdf3dee66dba7299dbd2c7e8e8a3fcd005 Mon Sep 17 00:00:00 2001
From: Roland McGrath <mcgrathr at google.com>
Date: Thu, 16 Jan 2025 13:55:57 -0800
Subject: [PATCH] [libc] Fix hdrgen output for no-argument functions

The hdrgen output is C, not C++.
---
 libc/utils/hdrgen/function.py                         | 2 +-
 libc/utils/hdrgen/tests/expected_output/test_header.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libc/utils/hdrgen/function.py b/libc/utils/hdrgen/function.py
index d97df7f8a50ec5..8ae47e574785fa 100644
--- a/libc/utils/hdrgen/function.py
+++ b/libc/utils/hdrgen/function.py
@@ -22,7 +22,7 @@ def __init__(
 
     def __str__(self):
         attributes_str = " ".join(self.attributes)
-        arguments_str = ", ".join(self.arguments)
+        arguments_str = ", ".join(self.arguments) if self.arguments else "void"
         if attributes_str == "":
             result = f"{self.return_type} {self.name}({arguments_str})"
         else:
diff --git a/libc/utils/hdrgen/tests/expected_output/test_header.h b/libc/utils/hdrgen/tests/expected_output/test_header.h
index a777976134b045..d730078fba0649 100644
--- a/libc/utils/hdrgen/tests/expected_output/test_header.h
+++ b/libc/utils/hdrgen/tests/expected_output/test_header.h
@@ -28,10 +28,10 @@ enum {
 
 __BEGIN_C_DECLS
 
-CONST_FUNC_A void func_a() __NOEXCEPT;
+CONST_FUNC_A void func_a(void) __NOEXCEPT;
 
 #ifdef LIBC_TYPES_HAS_FLOAT128
-float128 func_b() __NOEXCEPT;
+float128 func_b(void) __NOEXCEPT;
 #endif // LIBC_TYPES_HAS_FLOAT128
 
 #ifdef LIBC_TYPES_HAS_FLOAT16



More information about the libc-commits mailing list