http://d.puremagic.com/issues/show_bug.cgi?id=2823
Summary: -w switch breaks CTFE Product: D Version: 2.027 Platform: PC OS/Version: Windows Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: bugzi...@digitalmars.com ReportedBy: ma...@pochta.ru --- module Test; import std.stdio; int main() { writeln("should not be -1: ",a(-1)); return 0; } short a(short b) pure nothrow { return b>>>1; } static assert(a(-1)==-1); --- >\dev\dmd\bin\dmd tmp.d -I.. -oftmp.exe -w warning - tmp.d(32): Error: implicit conversion of expression (cast(int)b >>> 1) of type int to short can cause loss of data tmp.d(43): Error: cannot evaluate a(cast(short)-1) at compile time tmp.d(43): Error: static assert (cast(int)a(cast(short)-1) == -1) is not evaluatable at compile time >tmp 'tmp' is not recognized as an internal or external command, operable program or batch file. >\dev\dmd\bin\dmd tmp.d -I.. -oftmp.exe c:\dev\d\win>tmp should not be -1: -1 --