[Issue 4815] New: CodeView: Global and Static symbols should have unmangled names
http://d.puremagic.com/issues/show_bug.cgi?id=4815 Summary: CodeView: Global and Static symbols should have unmangled names Product: D Version: unspecified Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: aldonun...@gmail.com --- Comment #0 from Aldo Nunez 2010-09-05 00:35:07 PDT --- Global and Static symbols should have their names stored fully qualified but unmangled in the CodeView debug info. In contrast, Public symbols, because they are meant to expose names to other object files, should have their mangled linkage names stored, as they already are. Right now Global and Static symbol names are stored mangled. This causes problems when debugging. Storing them mangled defeats the ability of a debugger to use the hash table made by the linker in order to look up variables the user wants to evaluate and functions in a callstack. It also seems to offer no meaningful service, because mangled names are more appropriate for linking than debugging. This affects at least the following kinds of symbol records in the sstGlobalSym and sstStaticSym sections (not sstGlobalPub): S_LDATA32 S_GDATA32 S_LPROC32 S_GPROC32 S_THUNK32 S_LTHREAD32 S_GTHREAD32 S_UDT (already OK) The following article gives some explanation of the separation in treating name mangling. It applies to PDB format, but it's believed that PDB derives from CodeView, so I think the article applies equally to both. http://msdn.microsoft.com/en-us/library/ff553493(VS.85).aspx -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4816] New: template constraint and __traits(compiles, ...) don't work properly together with a delegate
http://d.puremagic.com/issues/show_bug.cgi?id=4816 Summary: template constraint and __traits(compiles, ...) don't work properly together with a delegate Product: D Version: D2 Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: jmdavisp...@gmail.com --- Comment #0 from Jonathan M Davis 2010-09-05 00:42:07 PDT --- The following refuses to compile import std.stdio; void callFunc(alias func, T...)(T args) if(__traits(compiles, func(args))) { func(args); } void main() { auto func = (){writeln(4);}; callFunc!(func)(); } Rather, it gives you the error message d.d(12): Error: template d.callFunc(alias func,T...) if (__traits(compiles,func(args))) does not match any function template declaration d.d(12): Error: template d.callFunc(alias func,T...) if (__traits(compiles,func(args))) cannot deduce template function from argument types !(func)() d.d(12): Error: template instance errors instantiating template If I remove the template constraint, then it compiles fine. If I declare func as a nested function and pass that, it works fine. If I use __traits(compiles, func()) in main(), it returns true. However, the template constraint fails as long as you pass it a delegate. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4817] New: CodeView: Enum members should have simple names
http://d.puremagic.com/issues/show_bug.cgi?id=4817 Summary: CodeView: Enum members should have simple names Product: D Version: unspecified Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P3 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: aldonun...@gmail.com --- Comment #0 from Aldo Nunez 2010-09-05 00:51:40 PDT --- In the CodeView info for a program, members of enums have their names stored fully qualified, even though the enum members themselves are stored in the scope of their enum type, whose name is already fully qualified. Instead of storing: LF_ENUM "mod.E" - LF_ENUMERATE "mod.E.Alpha" - LF_ENUMERATE "mod.E.Beta" This should be stored: LF_ENUM "mod.E" - LF_ENUMERATE "Alpha" - LF_ENUMERATE "Beta" This is helpful for debugging. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4009] OPTLINK ruins the day yet again
http://d.puremagic.com/issues/show_bug.cgi?id=4009 --- Comment #10 from Walter Bright 2010-09-05 03:28:45 PDT --- The overflow would happen when some of the data structures exceeded 128K in size. I checked the other seg faults for optlink in Bugzilla, but those apparently have different causes. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4818] New: Taking address of shared member function -> unshared delegate
http://d.puremagic.com/issues/show_bug.cgi?id=4818 Summary: Taking address of shared member function -> unshared delegate Product: D Version: D2 Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: dsim...@yahoo.com --- Comment #0 from David Simcha 2010-09-05 08:34:42 PDT --- class Foo { shared void bar() {} } void main() { shared(void delegate()) d; auto foo = new Foo; d = &foo.bar; } class Foo { shared void bar() {} } void main() { shared(void delegate()) d; auto foo = new Foo; d = &foo.bar; } Error: cannot implicitly convert expression (&foo.bar) of type void delegate() to shared(void delegate()) But this compiles: class Foo { void bar() {} } void main() { shared(void delegate()) d; auto foo = new Foo; d = &foo.bar; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4093] Segfault(interpret.c): with recursive struct templates
http://d.puremagic.com/issues/show_bug.cgi?id=4093 siegelords_ab...@yahoo.com changed: What|Removed |Added CC||siegelords_ab...@yahoo.com --- Comment #3 from siegelords_ab...@yahoo.com 2010-09-05 08:57:10 PDT --- The test code in the original comment does not compile on DMD2.048 (Error: variable hof cannot be read at compile time) and causes a segfault in DMD1.063. Is this bug really fixed? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4819] New: "this" in classes should not an lvalue
http://d.puremagic.com/issues/show_bug.cgi?id=4819 Summary: "this" in classes should not an lvalue Product: D Version: D1 & D2 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: jema...@earthlink.net --- Comment #0 from John Mandeville 2010-09-05 09:05:44 PDT --- "this" is treated as an lvalue. For classes, it should be an rvalue. In particular, the following absurdity compiles in v1.063 and v.2.047 but should not. class Yikes { int i; this() { this = null; } } void main() { auto y = new Yikes(); } See also discussion at http://www.digitalmars.com/d/archives/digitalmars/D/this_as_lvalue_116836.html -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4820] New: Regressions in DStress caused by changeset 452
http://d.puremagic.com/issues/show_bug.cgi?id=4820 Summary: Regressions in DStress caused by changeset 452 Product: D Version: 1.057 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: siegelords_ab...@yahoo.com --- Comment #0 from siegelords_ab...@yahoo.com 2010-09-05 09:14:10 PDT --- Changeset 452 that was used to solve bug 2935 causes 4 regressions in the DStress test suite. The tests that now fail are the following: run/l/lazy_02_A.d run/l/lazy_02_B.d run/l/lazy_02_C.d run/l/lazy_02_D.d The first one, for example is: bool nextis(void delegate() dgpositive = {}) { return true; } bool looping(lazy bool condition) { return true; } int main() { looping(nextis()); return 0; } and when compiled with DMD1.063 yields: test.d(1): Error: cannot inline default argument __dgliteral1 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4821] New: std.array.insert on string[]
http://d.puremagic.com/issues/show_bug.cgi?id=4821 Summary: std.array.insert on string[] Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: bearophile_h...@eml.cc --- Comment #0 from bearophile_h...@eml.cc 2010-09-05 09:14:13 PDT --- This D2 program correctly inserts the int 10 at the first position of an empty array (dmd 2.048): import std.array: insert; void main() { int[] a; a.insert(0, 10); assert(a == [10]); } But a similar program doesn't work with an array of strings: import std.array: insert; void main() { string[] a; a.insert(0, "hello"); } Errors: ...\dmd\src\phobos\std\array.d(518): Error: cannot implicitly convert expression (e) of type immutable(char) to string ...\dmd\src\phobos\std\array.d(14): Error: template instance std.array.insert!(string,string) error instantiating (A related necessary function std.array.remove is missing.) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2943] Struct copying in presence of alias member this only copies alias this member
http://d.puremagic.com/issues/show_bug.cgi?id=2943 --- Comment #4 from Serg Kovrov 2010-09-05 09:16:32 PDT --- I do. As stated in comment for Bug 3135#c1 - an empty postblit function seem to workaround the issue.. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2943] Struct copying in presence of alias member this only copies alias this member
http://d.puremagic.com/issues/show_bug.cgi?id=2943 --- Comment #5 from David Simcha 2010-09-05 09:52:19 PDT --- (In reply to comment #3) > doesn't anyone use alias this? I mostly don't, but only b/c it's currently so buggy it's not even funny. I just looked, I myself have filed at least 5 bug reports on it, 4 of which I filed within a few days after the first version of DMD with alias this came out. IMHO the next big todo after 64 support is to tackle the general extreme bugginess of alias this and inout, as well as the ref issue w/ opApply (Bug 2443). These are key features for library writers. Their bugginess severely limits their usability, and right now a major criticism of D is lack of libraries, so supporting library writers is kind of important. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4822] New: Problem with std.stdio.File.writef("%c"
http://d.puremagic.com/issues/show_bug.cgi?id=4822 Summary: Problem with std.stdio.File.writef("%c" Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: bearophile_h...@eml.cc --- Comment #0 from bearophile_h...@eml.cc 2010-09-05 11:19:51 PDT --- I think this is a correct D2 program: import std.stdio: File; void main() { auto f = File("test.txt", "w"); f.writef("%c", 'x'); } But DMD dmd 2.048 gives at runtime: std.format.FormatError: std.format integral -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4823] New: CodeView: Thread local variables are stored as shared globals
http://d.puremagic.com/issues/show_bug.cgi?id=4823 Summary: CodeView: Thread local variables are stored as shared globals Product: D Version: unspecified Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: aldonun...@gmail.com --- Comment #0 from Aldo Nunez 2010-09-05 12:41:57 PDT --- In the debug info, thread local variables, whether they're at module, class, or function scope should have record types of S_LTHREAD32 and S_GTHREAD32. Right now they're stored as shared globals using the record type S_GDATA32. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4824] New: stopwatch unit tests fail intermitently
http://d.puremagic.com/issues/show_bug.cgi?id=4824 Summary: stopwatch unit tests fail intermitently Product: D Version: D2 Platform: Other OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: bra...@puremagic.com --- Comment #0 from Brad Roberts 2010-09-05 12:42:56 PDT --- The stop watch test fails on and off: http://d.puremagic.com/test-results/index.ghtml When it fails: Testing generated/posix/release/unittest/std/stopwatch core.exception.asserter...@std.stopwatch(907): Assertion failure generated/posix/release/unittest/std/stopwatch(_d_assertm+0x16) [0x807d986] generated/posix/release/unittest/std/stopwatch(_D3std9stopwatch8__assertFiZv+0x12) [0x807b432] generated/posix/release/unittest/std/stopwatch(_D3std9stopwatch12__unittest26FZv41__T13__dgliteral24TS3std9stopwatch5TicksZ13__dgliteral24MFS3std9stopwatch5TicksZv+0x23) [0x807b37f] generated/posix/release/unittest/std/stopwatch(_D3std9stopwatch12__unittest26FZv66__T11measureTimeS463std9stopwatch12__unittest26FZv13__dgliteral24Z11measureTimeMFZS3std9stopwatch12__unittest26FZv66__T11measureTimeS463std9stopwatch12__unittest26FZv13__dgliteral24Z11measureTimeM3TMP3TMP6__dtorMFZv+0x1b) [0x807b303] generated/posix/release/unittest/std/stopwatch(_D3std9stopwatch12__unittest26FZv+0x19) [0x807ada9] generated/posix/release/unittest/std/stopwatch(_D3std9stopwatch9__modtestFZv+0x71) [0x807b405] generated/posix/release/unittest/std/stopwatch(_D4core7runtime18runModuleUnitTestsUZb16__foreachbody147MFKPS6object10ModuleInfoZi+0x24) [0x807ff0c] generated/posix/release/unittest/std/stopwatch(_D6object10ModuleInfo7opApplyFMDFKPS6object10ModuleInfoZiZi+0x41) [0x807d4bd] generated/posix/release/unittest/std/stopwatch(runModuleUnitTests+0x87) [0x807fe27] generated/posix/release/unittest/std/stopwatch(_D2rt6dmain24mainUiPPaZi6runAllMFZv+0x20) [0x807dba8] generated/posix/release/unittest/std/stopwatch(_D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv+0x24) [0x807dad0] generated/posix/release/unittest/std/stopwatch(main+0x96) [0x807da76] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x4008dbd6] generated/posix/release/unittest/std/stopwatch() [0x8079eb1] Other failures have been in the debug flavor test run as well. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4825] New: "Error: non-constant expression" and -inline
http://d.puremagic.com/issues/show_bug.cgi?id=4825 Summary: "Error: non-constant expression" and -inline Product: D Version: D1 Platform: Other OS/Version: All Status: NEW Keywords: rejects-valid Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: nfx...@gmail.com --- Comment #0 from nfx...@gmail.com 2010-09-05 15:42:44 PDT --- This only happens with -inline. It worked on dmd 1.055, but fails on dmd 1.057, 1.061, 1.062 and 1.063. //fails with dmd -c -inline test.d int a() { int r; return r; //Error: non-constant expression r } int b() { return a(); } void c() { void d() { auto e = b(); } const int f = b(); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4825] "Error: non-constant expression" with -inline
http://d.puremagic.com/issues/show_bug.cgi?id=4825 --- Comment #1 from nfx...@gmail.com 2010-09-05 15:46:57 PDT --- I have to add that this bug triggers even when the "const int..." line on function c is in a different function in a different module. This makes it a very non-obvious bug, where you have no idea what is happening. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4795] druntime demangler unittests fail
http://d.puremagic.com/issues/show_bug.cgi?id=4795 Brad Roberts changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #2 from Brad Roberts 2010-09-05 19:17:11 PDT --- Fixed by Sean in druntime commits r384 and r385 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4797] onOutOfMemoryError in dmd unit test causes segv
http://d.puremagic.com/issues/show_bug.cgi?id=4797 Brad Roberts changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #1 from Brad Roberts 2010-09-05 19:17:56 PDT --- Fixed by Sean in druntime commits r384 and r385 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4826] New: "cannot create associative array" and compiler crash
http://d.puremagic.com/issues/show_bug.cgi?id=4826 Summary: "cannot create associative array" and compiler crash Product: D Version: D2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: brian-sch...@cox.net --- Comment #0 from brian-sch...@cox.net 2010-09-05 19:21:54 PDT --- Created an attachment (id=746) Code that fails DMD fails to compile the attached code, printing "Error: cannot create associative array T[string]" before crashing. Error message printed by GDB: Program received signal SIGSEGV, Segmentation fault. 0x0817f8b7 in TemplateInstance::semantic (this=0x953b418, sc=0x0, fargs=0x0) at template.c:3554 3554tinst = sc->tinst; Backtrace: #0 0x0817f8b7 in TemplateInstance::semantic (this=0x953b418, sc=0x0, fargs=0x0) at template.c:3554 #1 0x0818028a in TemplateInstance::semantic (this=0x953b418, sc=0x0) at template.c:3524 #2 0x081384b6 in TypeAArray::getImpl (this=0x82121e0) at mtype.c:3976 #3 0x0813ffa1 in TypeStruct::implicitConvTo (this=0x820df50, to=0x82121e0) at mtype.c:6942 #4 0x0817be83 in Type::deduceType (this=0x820df50, sc=0x939b448, tparam=0x82121e0, parameters=0x82120d0, dedtypes=0xc458) at template.c:1881 #5 0x0817c4a1 in TypeStruct::deduceType (this=0x820df50, sc=0x939b448, tparam=0x82121e0, parameters=0x82120d0, dedtypes=0xc458) at template.c:2412 #6 0x08180e6d in TemplateDeclaration::deduceFunctionTemplateMatch ( this=0x8212e80, sc=0x9206218, loc=..., targsi=0x0, ethis=0x94dd5b0, fargs=0x94dd600, dedargs=0xc600) at template.c:1109 #7 0x08181767 in TemplateDeclaration::deduceFunctionTemplate (this=0x8210f08, sc=0x9206218, loc=..., targsi=0x0, ethis=0x94dd5b0, fargs=0x94dd600, flags=0) at template.c:1470 #8 0x080efb8d in CallExp::semantic (this=0x94dd628, sc=0x9206218) at expression.c:6929 #9 0x080e4fca in AssignExp::semantic (this=0x8208a98, sc=0x9206218) at expression.c:8876 #10 0x08168368 in ExpStatement::semantic (this=0x8208ac0, sc=0x9206218) at statement.c:245 #11 0x0816a7a1 in CompoundStatement::semantic (this=0x82091b8, sc=0x9206218) at statement.c:464 #12 0x080f871b in FuncDeclaration::semantic3 (this=0x8207350, sc=0x9202ba8) at func.c:1213 #13 0x0812c23d in Module::semantic3 (this=0x8206848) at module.c:830 #14 0x0812aafe in main (argc=6, argv=0x81fcde0) at mars.c:1174 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4826] "cannot create associative array" and compiler crash
http://d.puremagic.com/issues/show_bug.cgi?id=4826 --- Comment #1 from brian-sch...@cox.net 2010-09-05 19:29:53 PDT --- Here's the code that fails: The second opIndexAssign is written this way because of bug 2972. module testcase; struct SomeStruct { void opIndexAssign(T)(T[string] value, string key) if(is(T : string) || is(T : int)) { } void opIndexAssign(T)(SomeStruct value, string key) if(is(T : SomeStruct)) { } } void main(string[] args) { auto t = SomeStruct(); t["test"] = ["key": "value", "otherKey": "otherValue"]; auto k = SomeStruct(); t["fails"] = k; // Error: cannot create associative array T[string] // Segmentation fault } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4826] "cannot create associative array" and compiler crash
http://d.puremagic.com/issues/show_bug.cgi?id=4826 --- Comment #2 from brian-sch...@cox.net 2010-09-05 19:34:48 PDT --- (In reply to comment #1) That should have been: void opIndexAssign(T)(T value, string key) if(is(T : SomeStruct)) { } But the error is the same either way. Bugzilla needs an edit button. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4827] New: std.format.formatValue for AArray
http://d.puremagic.com/issues/show_bug.cgi?id=4827 Summary: std.format.formatValue for AArray Product: D Version: D2 Platform: Other OS/Version: Windows Status: NEW Keywords: patch Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: rayerd@gmail.com --- Comment #0 from Haruki Shigemori 2010-09-05 20:53:28 PDT --- Created an attachment (id=747) Replace to "FormatSpec" from "ref FormatSpec" import std.stdio; void main() { int[string] aa = ["h":10, "j":20, "kk":30]; writeln(aa);//h:10 j:20 k:30 } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4828] ICE w/ non-boolean dot expression sth.template_instance in static if
http://d.puremagic.com/issues/show_bug.cgi?id=4828 --- Comment #1 from Shin Fujishiro 2010-09-05 23:28:59 PDT --- Created an attachment (id=748) Patch against dmd r660, implements DotExp::toCBuffer() The attached patch implements DotExp::toCBuffer(). The syntax `something.template_instance` yields a DotExp. The repro code in comment #0 is invalid, and the compiler tries to generate an error message. Then it calls toCBuffer() on the DotExp object, but it's not overridden, so the base class' BinExp::toCBuffer() is invoked. It hits the assertion because `precedence[TOKdotexp]` is PREC_zero: void BinExp::toCBuffer(OutBuffer *buf, HdrGenState *hgs) { expToCBuffer(buf, hgs, e1, precedence[op]); // op == TOKdotexp ... So, DotExp::toCBuffer() needs to be implemented to handle this case. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4828] New: ICE w/ non-boolean dot expression sth.template_instance in static if
http://d.puremagic.com/issues/show_bug.cgi?id=4828 Summary: ICE w/ non-boolean dot expression sth.template_instance in static if Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: ice-on-invalid-code Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: rsi...@gmail.com --- Comment #0 from Shin Fujishiro 2010-09-05 23:25:53 PDT --- Using an syntax `something.template_instance` in static-if triggers an assertion at expression.c(817). struct S { template P() {} alias P!() p; } static if (S.p) {} // ICE % dmd -o- -c test Assertion failed: (pr != PREC_zero), function expToCBuffer, file expression.c, line 817. Assertion failure did not occur before svn r629. % dmd-r628 -o- -c test test.d(6): Error: expression S dotexp P!() is not constant or does not evaluate to a bool -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---