aboutsummaryrefslogtreecommitdiff
path: root/libphobos/libdruntime
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2021-09-24 10:59:47 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2021-09-30 15:07:19 +0200
commitd46a29d919058fb383d19fe35c234fab58286f71 (patch)
treea70c30e956607308dbc72391acd191c006cd994a /libphobos/libdruntime
parentef37ddf477ac4b21ec4d1be9260cfd3b431fd4a9 (diff)
downloadgcc-d46a29d919058fb383d19fe35c234fab58286f71.zip
gcc-d46a29d919058fb383d19fe35c234fab58286f71.tar.gz
gcc-d46a29d919058fb383d19fe35c234fab58286f71.tar.bz2
libphobos: Define main function as extern(C) when compiling without D runtime (PR102476)
The default supplied main function as read when compiling with `-fmain' has extern(D) linkage. However this does not work when mixing this option together with `-fno-druntime'. PR d/102476 gcc/testsuite/ChangeLog: * gdc.dg/pr102476.d: New test. libphobos/ChangeLog: * libdruntime/__main.di: Define main function as extern(C) when compiling without D runtime.
Diffstat (limited to 'libphobos/libdruntime')
-rw-r--r--libphobos/libdruntime/__main.di14
1 files changed, 12 insertions, 2 deletions
diff --git a/libphobos/libdruntime/__main.di b/libphobos/libdruntime/__main.di
index 8062bf4..ab1264b 100644
--- a/libphobos/libdruntime/__main.di
+++ b/libphobos/libdruntime/__main.di
@@ -20,7 +20,17 @@
module __main;
-int main(char[][])
+version (D_BetterC)
{
- return 0;
+ extern (C) int main(int, char**)
+ {
+ return 0;
+ }
+}
+else
+{
+ int main(char[][])
+ {
+ return 0;
+ }
}