// Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build go1.5 // This file implements access to gccgo-generated export data. package main import ( "golang.org/x/tools/go/gccgoimporter" "golang.org/x/tools/go/types" ) var ( initmap = make(map[*types.Package]gccgoimporter.InitData) ) func init() { incpaths := []string{"/"} // importer for default gccgo var inst gccgoimporter.GccgoInstallation inst.InitFromDriver("gccgo") register("gccgo", inst.GetImporter(incpaths, initmap)) } // Print the extra gccgo compiler data for this package, if it exists. func (p *printer) printGccgoExtra(pkg *types.Package) { if initdata, ok := initmap[pkg]; ok { p.printf("/*\npriority %d\n", initdata.Priority) p.printDecl("init", len(initdata.Inits), func() { for _, init := range initdata.Inits { p.printf("%s %s %d\n", init.Name, init.InitFunc, init.Priority) } }) p.print("*/\n") } }