# dmd -m32 -c test.d extern(C++) cdouble czero() { return 0+0i; } extern(C++) creal czerol() { return 0+0Li; } void main() { auto a = czero(); auto b = czerol(); }
extern(C) and extern(D) compile just fine.
@ibuclaw updated dlang/dmd pull request #12072 "fix Issue 21514 - [ICE] cod1.d:4015: Assertion `retregs || !*pretregs' failed with -m32" fixing this issue: - fix Issue 21514 - [ICE] cod1.d:4015: Assertion `retregs || !*pretregs' failed with -m32 https://github.com/dlang/dmd/pull/12072
dlang/dmd pull request #12072 "fix Issue 21514 - [ICE] cod1.d:4015: Assertion `retregs || !*pretregs' failed with -m32" was merged into stable: - c6fd0913689fab0b6d17295eb30c12b688e3ed78 by Iain Buclaw: fix Issue 21514 - [ICE] cod1.d:4015: Assertion `retregs || !*pretregs' failed with -m32 https://github.com/dlang/dmd/pull/12072
dlang/dmd pull request #12088 "merge stable" was merged into master: - f5f98d337ed6f79ee36e63425845f8de106c08cb by Iain Buclaw: fix Issue 21514 - [ICE] cod1.d:4015: Assertion `retregs || !*pretregs' failed with -m32 https://github.com/dlang/dmd/pull/12088