Declare main outside of extern "C" block

The C++ standard doesn't allow a linkage-specification for main,
https://eel.is/c++draft/basic.start.main#3.sentence-5:

"The main function shall not be declared with a linkage-specification
([dcl.link])."

Clang has started warning on this usage:

bionic/libc/bionic/libc_init_common.h:49:12: error: 'main' should not be 'extern "C"' [-Werror,-Wmain]
   49 | extern int main(int argc, char** argv, char** env);

Clang knows that ::main is special and won't mangle its name.

Bug: http://b/379133546
Test: treehugger
Change-Id: Id5c1092c4fcb2548469e44165874d5ca19fbce81

diff --git a/libc/bionic/libc_init_common.h b/libc/bionic/libc_init_common.h
index 126f002..9e15811 100644
--- a/libc/bionic/libc_init_common.h
+++ b/libc/bionic/libc_init_common.h
@@ -44,10 +44,12 @@
   size_t fini_array_count;
 } structors_array_t;
 
-__BEGIN_DECLS
-
+// The main function must not be declared with a linkage-specification
+// ('extern "C"' or 'extern "C++"'), so declare it before __BEGIN_DECLS.
 extern int main(int argc, char** argv, char** env);
 
+__BEGIN_DECLS
+
 __noreturn void __libc_init(void* raw_args,
                             void (*onexit)(void),
                             int (*slingshot)(int, char**, char**),