Static Single Assignment in Go: From Compiler IR to Taint Analysis

go dev.to

Subtitle: A 1988 compiler optimization turns out to be the cleanest way to trace untrusted data through Go. When you write this: x := 1 x = x + 1 x = x * 2 you have written one name, x, that holds three different values at three different moments. That is convenient for humans and miserable for machines. Any tool that wants to reason about x must first answer a question your code never asked: which x do you mean, at this line? Static Single Assignment (SSA) form is the answer. In SSA,

Read Full Tutorial open_in_new
arrow_back Back to Tutorials