mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-03 02:27:48 +00:00
compiler: try harder to find source locations for constants
If there is no source location, at least use the file (but not line) for debug information. This attributes almost 1kB of string data for ./testdata/stdlib.go when compiling for WASI.
This commit is contained in:
@@ -1863,6 +1863,14 @@ func (b *builder) createFunctionCall(instr *ssa.CallCommon) (llvm.Value, error)
|
||||
func (b *builder) getValue(expr ssa.Value, pos token.Pos) llvm.Value {
|
||||
switch expr := expr.(type) {
|
||||
case *ssa.Const:
|
||||
if pos == token.NoPos {
|
||||
// If the position isn't known, at least try to find in which file
|
||||
// it is defined.
|
||||
file := b.program.Fset.File(b.fn.Pos())
|
||||
if file != nil {
|
||||
pos = file.Pos(0)
|
||||
}
|
||||
}
|
||||
return b.createConst(expr, pos)
|
||||
case *ssa.Function:
|
||||
if b.getFunctionInfo(expr).exported {
|
||||
|
||||
Reference in New Issue
Block a user