aboutsummaryrefslogtreecommitdiff
path: root/src/go/internal/gccgoimporter/parser.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/go/internal/gccgoimporter/parser.go')
-rw-r--r--src/go/internal/gccgoimporter/parser.go16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/go/internal/gccgoimporter/parser.go b/src/go/internal/gccgoimporter/parser.go
index 7312cb4879..3b97c96d43 100644
--- a/src/go/internal/gccgoimporter/parser.go
+++ b/src/go/internal/gccgoimporter/parser.go
@@ -711,7 +711,10 @@ func (p *parser) parseType(pkg *types.Package) (t types.Type) {
func (p *parser) parsePackageInit() PackageInit {
name := p.parseUnquotedString()
initfunc := p.parseUnquotedString()
- priority := int(p.parseInt())
+ priority := -1
+ if p.version == "v1" {
+ priority = int(p.parseInt())
+ }
return PackageInit{Name: name, InitFunc: initfunc, Priority: priority}
}
@@ -766,6 +769,15 @@ func (p *parser) parseInitDataDirective() {
}
p.expect(';')
+ case "init_graph":
+ p.next()
+ // The graph data is thrown away for now.
+ for p.tok != ';' && p.tok != scanner.EOF {
+ p.parseInt()
+ p.parseInt()
+ }
+ p.expect(';')
+
case "checksum":
// Don't let the scanner try to parse the checksum as a number.
defer func(mode uint) {
@@ -797,7 +809,7 @@ func (p *parser) parseDirective() {
}
switch p.lit {
- case "v1", "v2", "priority", "init", "checksum":
+ case "v1", "v2", "priority", "init", "init_graph", "checksum":
p.parseInitDataDirective()
case "package":