[libc-commits] [libc] 1b71c47 - libc: Remove `extern "C"` from main declarations (#102825)

via libc-commits libc-commits at lists.llvm.org
Sun Aug 11 13:17:31 PDT 2024


Author: David Blaikie
Date: 2024-08-11T13:17:27-07:00
New Revision: 1b71c471c7d0216fa7fc5c0b45b5926d1fabfaf4

URL: https://github.com/llvm/llvm-project/commit/1b71c471c7d0216fa7fc5c0b45b5926d1fabfaf4
DIFF: https://github.com/llvm/llvm-project/commit/1b71c471c7d0216fa7fc5c0b45b5926d1fabfaf4.diff

LOG: libc: Remove `extern "C"` from main declarations (#102825)

This is invalid in C++, and clang recently started warning on it as of
#101853

Added: 
    

Modified: 
    libc/benchmarks/gpu/LibcGpuBenchmarkMain.cpp
    libc/startup/gpu/amdgpu/start.cpp
    libc/startup/gpu/nvptx/start.cpp
    libc/startup/linux/do_start.cpp
    libc/test/IntegrationTest/test.h
    libc/test/UnitTest/LibcTestMain.cpp
    libc/utils/HdrGen/PrototypeTestGen/PrototypeTestGen.cpp

Removed: 
    


################################################################################
diff  --git a/libc/benchmarks/gpu/LibcGpuBenchmarkMain.cpp b/libc/benchmarks/gpu/LibcGpuBenchmarkMain.cpp
index 97366e55194a90..c4cc1a1731ce34 100644
--- a/libc/benchmarks/gpu/LibcGpuBenchmarkMain.cpp
+++ b/libc/benchmarks/gpu/LibcGpuBenchmarkMain.cpp
@@ -1,6 +1,6 @@
 #include "LibcGpuBenchmark.h"
 
-extern "C" int main(int argc, char **argv, char **envp) {
+int main(int argc, char **argv, char **envp) {
   LIBC_NAMESPACE::benchmarks::Benchmark::run_benchmarks();
   return 0;
 }

diff  --git a/libc/startup/gpu/amdgpu/start.cpp b/libc/startup/gpu/amdgpu/start.cpp
index 5aaa7e938d2792..e10e4cd9c2cd74 100644
--- a/libc/startup/gpu/amdgpu/start.cpp
+++ b/libc/startup/gpu/amdgpu/start.cpp
@@ -13,7 +13,7 @@
 #include "src/stdlib/atexit.h"
 #include "src/stdlib/exit.h"
 
-extern "C" int main(int argc, char **argv, char **envp);
+int main(int argc, char **argv, char **envp);
 
 namespace LIBC_NAMESPACE_DECL {
 

diff  --git a/libc/startup/gpu/nvptx/start.cpp b/libc/startup/gpu/nvptx/start.cpp
index ef1e63e5161a61..561301638c3ca8 100644
--- a/libc/startup/gpu/nvptx/start.cpp
+++ b/libc/startup/gpu/nvptx/start.cpp
@@ -13,7 +13,7 @@
 #include "src/stdlib/atexit.h"
 #include "src/stdlib/exit.h"
 
-extern "C" int main(int argc, char **argv, char **envp);
+int main(int argc, char **argv, char **envp);
 
 namespace LIBC_NAMESPACE_DECL {
 

diff  --git a/libc/startup/linux/do_start.cpp b/libc/startup/linux/do_start.cpp
index 72060b4adb2148..7009895f0036c2 100644
--- a/libc/startup/linux/do_start.cpp
+++ b/libc/startup/linux/do_start.cpp
@@ -20,7 +20,7 @@
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
-extern "C" int main(int argc, char **argv, char **envp);
+int main(int argc, char **argv, char **envp);
 
 extern "C" {
 // These arrays are present in the .init_array and .fini_array sections.

diff  --git a/libc/test/IntegrationTest/test.h b/libc/test/IntegrationTest/test.h
index 5be66d9edff02a..f7068ed628a3d5 100644
--- a/libc/test/IntegrationTest/test.h
+++ b/libc/test/IntegrationTest/test.h
@@ -83,6 +83,6 @@
 // tests, then we should not need to explicitly declare/define the main
 // function in individual integration tests. We will not need this macro
 // then.
-#define TEST_MAIN extern "C" int main
+#define TEST_MAIN int main
 
 #endif // LLVM_LIBC_UTILS_INTEGRATION_TEST_TEST_H

diff  --git a/libc/test/UnitTest/LibcTestMain.cpp b/libc/test/UnitTest/LibcTestMain.cpp
index 94536e97164686..eb1125b5dcaf1f 100644
--- a/libc/test/UnitTest/LibcTestMain.cpp
+++ b/libc/test/UnitTest/LibcTestMain.cpp
@@ -43,7 +43,7 @@ TestOptions parseOptions(int argc, char **argv) {
 
 } // anonymous namespace
 
-extern "C" int main(int argc, char **argv, char **envp) {
+int main(int argc, char **argv, char **envp) {
   LIBC_NAMESPACE::testing::argc = argc;
   LIBC_NAMESPACE::testing::argv = argv;
   LIBC_NAMESPACE::testing::envp = envp;

diff  --git a/libc/utils/HdrGen/PrototypeTestGen/PrototypeTestGen.cpp b/libc/utils/HdrGen/PrototypeTestGen/PrototypeTestGen.cpp
index 551b97caf81fd6..4cac072104ca9a 100644
--- a/libc/utils/HdrGen/PrototypeTestGen/PrototypeTestGen.cpp
+++ b/libc/utils/HdrGen/PrototypeTestGen/PrototypeTestGen.cpp
@@ -47,7 +47,7 @@ bool TestGeneratorMain(llvm::raw_ostream &OS, llvm::RecordKeeper &records) {
 
   OS << '\n';
 
-  OS << "extern \"C\" int main() {\n";
+  OS << "int main() {\n";
   for (const auto &entrypoint : EntrypointNamesOption) {
     if (entrypoint == "errno")
       continue;


        


More information about the libc-commits mailing list