code: func fixGoTypes(prog *cc.Prog) {
  	did := make(map[*cc.Decl]bool)
  	for _, decl := range prog.Decls {
  		if did[decl] {
  			continue
  		}
  		did[decl] = true
  		if decl.Init != nil {
  			fixGoTypesInit(decl, decl.Init)
  		}
  		if decl.Body != nil {
  			t := decl.Type
  			if t != nil && t.Kind == cc.Func && t.Base.Is(c2go.Int) && len(t.Decls) == 1 && t.Decls[0].Type.String() == "Fmt*" {
  				fixFormatter(decl)
  			}
  			fixGoTypesStmt(prog, decl, decl.Body)
  		}
  	}
  }
docs: // fixGoTypes fixes all the Go type mismatches.