Summary: | Cannot get frame pointer to in contract when compiling with -inline | ||
---|---|---|---|
Product: | D | Reporter: | Leandro Lucarella <leandro.lucarella> |
Component: | dmd | Assignee: | No Owner <nobody> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | bugzilla, clugdbug |
Priority: | P2 | Keywords: | pull, rejects-valid |
Version: | D2 | ||
Hardware: | All | ||
OS: | All | ||
See Also: |
http://d.puremagic.com/issues/show_bug.cgi?id=4286 http://d.puremagic.com/issues/show_bug.cgi?id=4841 http://d.puremagic.com/issues/show_bug.cgi?id=5941 http://d.puremagic.com/issues/show_bug.cgi?id=7129 |
Reduced testcase: --- module test; class P { void f(int n) in { assert (n); } body { } } class D: P { void f(int n) in { } body { } } --- Error (only when compiling with -inline): --- test.d(5): Error: function test.D.f cannot get frame pointer to f --- Not using -inline makes it compile. Removing the empty in {} contract in D, makes it compile.
Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/201c43dc1c7e0ba66690098b703446682f93642e Merge pull request #811 from donc/bug7699 Fix issue 7699 - Cannot get frame pointer to in contract when compiling ...
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/5f7d47c437c6f4b3cd86b420fc0ec36405961d42 merge D2 pull #811 fix issue 7699