diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-09-24 10:59:47 +0200 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-09-30 15:07:19 +0200 |
commit | d46a29d919058fb383d19fe35c234fab58286f71 (patch) | |
tree | a70c30e956607308dbc72391acd191c006cd994a | |
parent | ef37ddf477ac4b21ec4d1be9260cfd3b431fd4a9 (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/testsuite/gdc.dg/pr102476.d | 3 | ||||
-rw-r--r-- | libphobos/libdruntime/__main.di | 14 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/testsuite/gdc.dg/pr102476.d b/gcc/testsuite/gdc.dg/pr102476.d new file mode 100644 index 0000000..543716e --- /dev/null +++ b/gcc/testsuite/gdc.dg/pr102476.d @@ -0,0 +1,3 @@ +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102476 +// { dg-do link } +// { dg-options "-fmain -fno-druntime" } 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; + } } |