[Issue 21584] New: dmd -O causes incorrect output
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Jan 26 05:51:25 UTC 2021
https://issues.dlang.org/show_bug.cgi?id=21584
Issue ID: 21584
Summary: dmd -O causes incorrect output
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: major
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: saurabh.das at gmail.com
I'm seeing what appears to be a bug with the -O flag in dmd. Here is a reduced
test case:
struct SomeStruct
{
long value;
}
bool isNumberOne(int i)
{
SomeStruct l;
if(i == 1)
l = SomeStruct(10);
return (l == SomeStruct(10));
}
void main()
{
if (!isNumberOne(1))
assert(false);
}
See: https://run.dlang.io/is/zlrDvy
rdmd test.d # Runs fine
rdmd -O test.d # Assert trips
The assert trips when run with "rdmd -O test.d" and it does not trip when run
with "rdmd test.d". This bug is observed in all compiler versions from
dmd-2.060 through to dmd-2.095.
Forum discussion:
https://forum.dlang.org/post/dpwzsxjksoqjzjvrwehw@forum.dlang.org
Thanks,
Saurabh
--
More information about the Digitalmars-d-bugs
mailing list