← Back to index
|
Original Bugzilla link
Bug 9781 – -inline will cause backend ICE
Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-03-21T18:55:00Z
Last change time
2013-04-08T22:25:30Z
Keywords
ice, pull
Assigned to
nobody
Creator
k.hara.pg
Comments
Comment #0
by k.hara.pg — 2013-03-21T18:55:07Z
void main() { int foo(int[4] x) { return x[1] * x[2]; } int[] xs = [0,1,2,3]; foo(xs[0 .. 4]); } $ dmd -inline -run test DMD v2.063 DEBUG tym = x25 el:0034D6AC cnt=0 cs=0 * TYint 0034D16C 0034D4B4 el:0034D16C cnt=0 cs=0 const TYvoid 1L el:0034D4B4 cnt=0 cs=0 const TYvoid 1L Internal error: backend\evalu8.c 1222
Comment #1
by code — 2013-03-23T01:47:09Z
Apparently the left and the right elem have the wrong type and value.
Comment #2
by code — 2013-04-08T17:23:43Z
cat > bug.d << CODE int foo9781(int[1] x) { return x[0] * x[0]; } void test9781() { foo9781([7]); } CODE dmd -c -inline bug.d Happens with v2.062 too.
Comment #3
by code — 2013-04-08T21:46:10Z
https://github.com/D-Programming-Language/dmd/pull/1874
Comment #4
by github-bugzilla — 2013-04-08T22:11:39Z
Commits pushed to master at
https://github.com/D-Programming-Language/dmd
https://github.com/D-Programming-Language/dmd/commit/4ae287b83ac939a767bbff392a8e931684f4827b
fix Issue 9781 - -inline will cause backend ICE - this rewrite created a const elem with type TYvoid which caused the backend assert in evalu8
https://github.com/D-Programming-Language/dmd/commit/7bf44a9a3a52ae61142307fd71d69f6708020337
Merge pull request #1874 from dawgfoto/fix9781 fix Issue 9781 - -inline will cause backend ICE