From 18bad81d58d2ef30711b5ee2ee5047fc297d286d Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Sun, 11 Aug 2024 18:48:02 +0000 Subject: [PATCH] libc: Remove `extern "C"` from main declarations This is invalid in C++, and clang recently started warning on it as of 37ec6e5f12afe4a37872bf28f280423696f39019 --- libc/benchmarks/gpu/LibcGpuBenchmarkMain.cpp | 2 +- libc/startup/gpu/amdgpu/start.cpp | 2 +- libc/startup/gpu/nvptx/start.cpp | 2 +- libc/startup/linux/do_start.cpp | 2 +- libc/test/IntegrationTest/test.h | 2 +- libc/test/UnitTest/LibcTestMain.cpp | 2 +- libc/utils/HdrGen/PrototypeTestGen/PrototypeTestGen.cpp | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) 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 #include -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;