Bug 20878 – .stringof inconsistent between 32-bit and 64-bit Linux

Status
NEW
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Linux
Creation time
2020-05-29T13:04:25Z
Last change time
2024-12-13T19:08:56Z
Assigned to
No Owner
Creator
Paul Backus
Moved to GitHub: dmd#19712 →

Comments

Comment #0 by snarwin+bugzilla — 2020-05-29T13:04:25Z
The following example compiles successfully on 64-bit Linux, but fails on 32-bit Linux: --- module testInference; import core.demangle: demangle; void foo8504()() {} auto toDelegate8504a(F)(auto ref F fp) { return fp; } extern(C) void testC8504() {} void test8504() { // commenting out the following line makes the test pass on 32-bit linux static assert(demangle(foo8504!().mangleof) == "pure nothrow @nogc @safe void testInference.foo8504!().foo8504()"); auto fp1 = toDelegate8504a(&testC8504); static assert(typeof(fp1).stringof == "extern (C) void function()"); } --- Error message on 32-bit Linux: --- testInference.d(19): Error: static assert: `"extern (C) void function() @system" == "extern (C) void function()"` is false --- Possibly related to issue 3796.
Comment #1 by hsteoh — 2020-08-13T22:03:36Z
Comment #2 by robert.schadek — 2024-12-13T19:08:56Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/19712 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB