mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 18:58:54 +01:00
internal/shader: bug fix: variables in an index should be marked as used
Closes #2848
This commit is contained in:
parent
6d18367f52
commit
9b9384baa0
@ -913,7 +913,7 @@ func (cs *compileState) parseExpr(block *block, fname string, expr ast.Expr, mar
|
|||||||
var stmts []shaderir.Stmt
|
var stmts []shaderir.Stmt
|
||||||
|
|
||||||
// Parse the index first
|
// Parse the index first
|
||||||
exprs, _, ss, ok := cs.parseExpr(block, fname, e.Index, markLocalVariableUsed)
|
exprs, _, ss, ok := cs.parseExpr(block, fname, e.Index, true)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, nil, nil, false
|
return nil, nil, nil, false
|
||||||
}
|
}
|
||||||
|
@ -514,6 +514,21 @@ func Fragment(dstPos vec4, srcPos vec2, color vec4) vec4 {
|
|||||||
`)); err == nil {
|
`)); err == nil {
|
||||||
t.Errorf("error must be non-nil but was nil")
|
t.Errorf("error must be non-nil but was nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue #2848
|
||||||
|
if _, err := compileToIR([]byte(`package main
|
||||||
|
|
||||||
|
func Fragment(dstPos vec4, srcPos vec2, color vec4) vec4 {
|
||||||
|
var floats [4]float
|
||||||
|
for i := 0; i < 3; i++ {
|
||||||
|
j := i + 1
|
||||||
|
floats[j] = float(i)
|
||||||
|
}
|
||||||
|
return vec4(floats[0], floats[1], floats[2], floats[3])
|
||||||
|
}
|
||||||
|
`)); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSyntaxBlankLhs(t *testing.T) {
|
func TestSyntaxBlankLhs(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user