mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: record original and absolute file names for line directives
Also, with this change, error locations don't print absolute positions in [] brackets following positions relative to line directives. To get the absolute positions as well, specify the -L flag. Fixes #22660. Change-Id: I9ecfa254f053defba9c802222874155fa12fee2c Reviewed-on: https://go-review.googlesource.com/77090 Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
2c00dea18b
commit
ca2a886cba
12 changed files with 83 additions and 27 deletions
|
|
@ -80,11 +80,12 @@ func (p *parser) updateBase(line, col uint, text string) {
|
|||
p.error_at(p.pos_at(line, col+uint(i+1)), "invalid line number: "+nstr)
|
||||
return
|
||||
}
|
||||
absFile := text[:i]
|
||||
filename := text[:i]
|
||||
absFilename := filename
|
||||
if p.fileh != nil {
|
||||
absFile = p.fileh(absFile)
|
||||
absFilename = p.fileh(filename)
|
||||
}
|
||||
p.base = src.NewLinePragmaBase(src.MakePos(p.base.Pos().Base(), line, col), absFile, uint(n))
|
||||
p.base = src.NewLinePragmaBase(src.MakePos(p.base.Pos().Base(), line, col), filename, absFilename, uint(n))
|
||||
}
|
||||
|
||||
func (p *parser) got(tok token) bool {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue