Nacl = goos == "nacl"
if Nacl {
- flag_largemodel = 1
+ flag_largemodel = true
}
- outfile = ""
- obj.Flagcount("+", "compiling runtime", &compiling_runtime)
+ flag.BoolVar(&compiling_runtime, "+", false, "compiling runtime")
obj.Flagcount("%", "debug non-static initializers", &Debug['%'])
obj.Flagcount("A", "for bootstrapping, allow 'any' type", &Debug['A'])
obj.Flagcount("B", "disable bounds checking", &Debug['B'])
- obj.Flagstr("D", "set relative `path` for local imports", &localimport)
+ flag.StringVar(&localimport, "D", "", "set relative `path` for local imports")
obj.Flagcount("E", "debug symbol export", &Debug['E'])
obj.Flagfn1("I", "add `directory` to import search path", addidir)
obj.Flagcount("K", "debug missing line numbers", &Debug['K'])
obj.Flagcount("S", "print assembly listing", &Debug['S'])
obj.Flagfn0("V", "print compiler version", doversion)
obj.Flagcount("W", "debug parse tree after type checking", &Debug['W'])
- obj.Flagstr("asmhdr", "write assembly header to `file`", &asmhdr)
- obj.Flagstr("buildid", "record `id` as the build id in the export metadata", &buildid)
- obj.Flagcount("complete", "compiling complete package (no C or assembly)", &pure_go)
- obj.Flagstr("d", "print debug information about items in `list`", &debugstr)
+ flag.StringVar(&asmhdr, "asmhdr", "", "write assembly header to `file`")
+ flag.StringVar(&buildid, "buildid", "", "record `id` as the build id in the export metadata")
+ flag.BoolVar(&pure_go, "complete", false, "compiling complete package (no C or assembly)")
+ flag.StringVar(&debugstr, "d", "", "print debug information about items in `list`")
obj.Flagcount("e", "no limit on number of errors reported", &Debug['e'])
obj.Flagcount("f", "debug stack frames", &Debug['f'])
obj.Flagcount("g", "debug code generation", &Debug['g'])
obj.Flagcount("h", "halt on error", &Debug['h'])
obj.Flagcount("i", "debug line number stack", &Debug['i'])
obj.Flagfn1("importmap", "add `definition` of the form source=actual to import map", addImportMap)
- obj.Flagstr("installsuffix", "set pkg directory `suffix`", &flag_installsuffix)
+ flag.StringVar(&flag_installsuffix, "installsuffix", "", "set pkg directory `suffix`")
obj.Flagcount("j", "debug runtime-initialized variables", &Debug['j'])
obj.Flagcount("l", "disable inlining", &Debug['l'])
obj.Flagcount("live", "debug liveness analysis", &debuglive)
obj.Flagcount("m", "print optimization decisions", &Debug['m'])
- obj.Flagcount("msan", "build code compatible with C/C++ memory sanitizer", &flag_msan)
- obj.Flagcount("newexport", "use new export format", &newexport) // TODO(gri) remove eventually (issue 13241)
- obj.Flagcount("nolocalimports", "reject local (relative) imports", &nolocalimports)
- obj.Flagstr("o", "write output to `file`", &outfile)
- obj.Flagstr("p", "set expected package import `path`", &myimportpath)
- obj.Flagcount("pack", "write package file instead of object file", &writearchive)
+ flag.BoolVar(&flag_msan, "msan", false, "build code compatible with C/C++ memory sanitizer")
+ flag.BoolVar(&newexport, "newexport", false, "use new export format") // TODO(gri) remove eventually (issue 13241)
+ flag.BoolVar(&nolocalimports, "nolocalimports", false, "reject local (relative) imports")
+ flag.StringVar(&outfile, "o", "", "write output to `file`")
+ flag.StringVar(&myimportpath, "p", "", "set expected package import `path`")
+ flag.BoolVar(&writearchive, "pack", false, "write package file instead of object file")
obj.Flagcount("r", "debug generated wrappers", &Debug['r'])
- obj.Flagcount("race", "enable race detector", &flag_race)
+ flag.BoolVar(&flag_race, "race", false, "enable race detector")
obj.Flagcount("s", "warn about composite literals that can be simplified", &Debug['s'])
- obj.Flagstr("trimpath", "remove `prefix` from recorded source file paths", &Ctxt.LineHist.TrimPathPrefix)
- obj.Flagcount("u", "reject unsafe code", &safemode)
+ flag.StringVar(&Ctxt.LineHist.TrimPathPrefix, "trimpath", "", "remove `prefix` from recorded source file paths")
+ flag.BoolVar(&safemode, "u", false, "reject unsafe code")
obj.Flagcount("v", "increase debug verbosity", &Debug['v'])
obj.Flagcount("w", "debug type checking", &Debug['w'])
- use_writebarrier = 1
- obj.Flagcount("wb", "enable write barrier", &use_writebarrier)
+ flag.BoolVar(&use_writebarrier, "wb", true, "enable write barrier")
obj.Flagcount("x", "debug lexer", &Debug['x'])
obj.Flagcount("y", "debug declarations in canned imports (with -d)", &Debug['y'])
- var flag_shared int
+ var flag_shared bool
var flag_dynlink bool
if supportsDynlink(Thearch.LinkArch.Arch) {
- obj.Flagcount("shared", "generate code that can be linked into a shared library", &flag_shared)
+ flag.BoolVar(&flag_shared, "shared", false, "generate code that can be linked into a shared library")
flag.BoolVar(&flag_dynlink, "dynlink", false, "support references to Go symbols defined in other shared libraries")
}
if Thearch.LinkArch.Family == sys.AMD64 {
- obj.Flagcount("largemodel", "generate code that assumes a large memory model", &flag_largemodel)
+ flag.BoolVar(&flag_largemodel, "largemodel", false, "generate code that assumes a large memory model")
}
- obj.Flagstr("cpuprofile", "write cpu profile to `file`", &cpuprofile)
- obj.Flagstr("memprofile", "write memory profile to `file`", &memprofile)
- obj.Flagint64("memprofilerate", "set runtime.MemProfileRate to `rate`", &memprofilerate)
+ flag.StringVar(&cpuprofile, "cpuprofile", "", "write cpu profile to `file`")
+ flag.StringVar(&memprofile, "memprofile", "", "write memory profile to `file`")
+ flag.Int64Var(&memprofilerate, "memprofilerate", 0, "set runtime.MemProfileRate to `rate`")
flag.BoolVar(&ssaEnabled, "ssa", true, "use SSA backend to generate code")
obj.Flagparse(usage)
if flag_dynlink {
- flag_shared = 1
+ flag_shared = true
+ }
+ if flag_shared {
+ // TODO(mdempsky): Change Flag_shared to bool.
+ Ctxt.Flag_shared = 1
}
- Ctxt.Flag_shared = int32(flag_shared)
Ctxt.Flag_dynlink = flag_dynlink
Ctxt.Flag_optimize = Debug['N'] == 0
startProfile()
- if flag_race != 0 {
+ if flag_race {
racepkg = mkpkg("runtime/race")
racepkg.Name = "race"
}
- if flag_msan != 0 {
+ if flag_msan {
msanpkg = mkpkg("runtime/msan")
msanpkg.Name = "msan"
}
- if flag_race != 0 && flag_msan != 0 {
+ if flag_race && flag_msan {
log.Fatal("cannot use both -race and -msan")
- } else if flag_race != 0 || flag_msan != 0 {
+ } else if flag_race || flag_msan {
instrumenting = true
}
fninit(xtop)
}
- if compiling_runtime != 0 {
+ if compiling_runtime {
checknowritebarrierrec()
}
func findpkg(name string) (file string, ok bool) {
if islocalname(name) {
- if safemode != 0 || nolocalimports != 0 {
+ if safemode || nolocalimports {
return "", false
}
if flag_installsuffix != "" {
suffixsep = "_"
suffix = flag_installsuffix
- } else if flag_race != 0 {
+ } else if flag_race {
suffixsep = "_"
suffix = "race"
- } else if flag_msan != 0 {
+ } else if flag_msan {
suffixsep = "_"
suffix = "msan"
}
}
if path_ == "unsafe" {
- if safemode != 0 {
+ if safemode {
Yyerror("cannot import package unsafe")
errorexit()
}
errorexit()
}
- if safemode != 0 && !importpkg.Safe {
+ if safemode && !importpkg.Safe {
Yyerror("cannot import unsafe package %q", importpkg.Path)
}
}
p = p[:i]
}
suffix := ".o"
- if writearchive > 0 {
+ if writearchive {
suffix = ".a"
}
outfile = p + suffix