← Back to index
|
Original Bugzilla link
Bug 22902 – dmd 2.099 regression: unittest -checkaction=context and import std.regex causes link error
Status
NEW
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2022-03-18T20:00:05Z
Last change time
2024-12-13T19:21:33Z
Assigned to
No Owner
Creator
kdevel
See also
https://issues.dlang.org/show_bug.cgi?id=22374
Moved to GitHub: dmd#20070 →
Comments
Comment #0
by kdevel — 2022-03-18T20:00:05Z
Maybe related to Issue#22374 and Issue#19937 Taken from forum post [1] zstack.d: --- module zstack; import std.stdio: writeln; void bar (int [] i) { writeln ("i: ", i); } unittest { int [] arr; bar (arr); } --- zrepo.d: --- module parser; import std.regex; import zstack; --- $ dmd -g -i -unittest -checkaction=context -main -run zrepro 2>&1 | ddemangle gives zrepro.o: In function `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(int)._d_assert_fail(scope const(immutable(char)[]), const(int))': [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:41: undefined reference to `pure nothrow @nogc @safe bool core.internal.dassert.inFinalizer!().inFinalizer()' zrepro.o: In function `pure nothrow @nogc @safe uint std.uni.sliceBits!(0uL, 8uL).sliceBits.opCall!(dchar).opCall(dchar)': [...]/dmd2/linux/bin64/../../src/phobos/std/uni/package.d:5593: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(const(uint))._d_assert_fail!(int)._d_assert_fail(scope const(immutable(char)[]), ref const(uint), const(int))' zrepro.o: In function `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(bool)._d_assert_fail(scope const(immutable(char)[]), ref const(bool))': [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:41: undefined reference to `pure nothrow @nogc @safe bool core.internal.dassert.inFinalizer!().inFinalizer()' zrepro.o: In function `pure nothrow @nogc @safe uint std.uni.sliceBits!(13uL, 21uL).sliceBits.opCall!(dchar).opCall(dchar)': [...]/dmd2/linux/bin64/../../src/phobos/std/uni/package.d:5593: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(const(uint))._d_assert_fail!(int)._d_assert_fail(scope const(immutable(char)[]), ref const(uint), const(int))' zrepro.o: In function `pure nothrow @nogc @safe uint std.uni.sliceBits!(8uL, 13uL).sliceBits.opCall!(dchar).opCall(dchar)': [...]/dmd2/linux/bin64/../../src/phobos/std/uni/package.d:5593: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(const(uint))._d_assert_fail!(int)._d_assert_fail(scope const(immutable(char)[]), ref const(uint), const(int))' zrepro.o: In function `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(ulong)._d_assert_fail!(ulong)._d_assert_fail(scope const(immutable(char)[]), ref const(ulong), const(ulong))': [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:70: undefined reference to `pure nothrow @nogc @safe bool core.internal.dassert.inFinalizer!().inFinalizer()' [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:75: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert.miniFormatFakeAttributes!(ulong).miniFormatFakeAttributes(ref const(ulong))' [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:77: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert.miniFormatFakeAttributes!(ulong).miniFormatFakeAttributes(ref const(ulong))' zrepro.o: In function `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(ulong)._d_assert_fail!(int)._d_assert_fail(scope const(immutable(char)[]), ref const(ulong), const(int))': [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:70: undefined reference to `pure nothrow @nogc @safe bool core.internal.dassert.inFinalizer!().inFinalizer()' [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:75: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert.miniFormatFakeAttributes!(ulong).miniFormatFakeAttributes(ref const(ulong))' zrepro.o: In function `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert._d_assert_fail!(ulong)._d_assert_fail!(ulong)._d_assert_fail(scope const(immutable(char)[]), ref const(ulong), ref const(ulong))': [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:70: undefined reference to `pure nothrow @nogc @safe bool core.internal.dassert.inFinalizer!().inFinalizer()' [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:75: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert.miniFormatFakeAttributes!(ulong).miniFormatFakeAttributes(ref const(ulong))' [...]/dmd2/linux/bin64/../../src/druntime/import/core/internal/dassert.d:77: undefined reference to `pure nothrow @nogc @safe immutable(char)[] core.internal.dassert.miniFormatFakeAttributes!(ulong).miniFormatFakeAttributes(ref const(ulong))' collect2: ld returned 1 exit status Error: linker exited with status 1 If import std.regex; is commented out or if -checkaction=context is removed from the cmd line the unittest passes. [1]
https://forum.dlang.org/thread/
[email protected]
Comment #1
by kdevel — 2022-05-28T23:04:25Z
> $ dmd -g -i -unittest -checkaction=context -main -run zrepro 2>&1 | ^ (typo) > ddemangle > > gives > > zrepro.o: In function `pure nothrow @nogc @safe immutable(char)[] > core.internal.dassert._d_assert_fail!(int)._d_assert_fail(scope > [...] Seems to be template generation related $ dmd -allinst -g -i -unittest -checkaction=context -main -run zrepo 2>&1 | ddemangle 1 modules passed unittests
Comment #2
by robert.schadek — 2024-12-13T19:21:33Z
THIS ISSUE HAS BEEN MOVED TO GITHUB
https://github.com/dlang/dmd/issues/20070
DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB