From 5abf00e4f0039aebac17b15203b09c4a8962aac0 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Wed, 9 Aug 2023 00:53:03 -0700 Subject: [PATCH] cmd/internal/objabi: add support for bisect.Matcher debug flags Makes it more convenient to add new bisection targets. Change-Id: I7ac14018bac1e25751234a2267f8747a281b6088 Reviewed-on: https://go-review.googlesource.com/c/go/+/517616 TryBot-Result: Gopher Robot Run-TryBot: Matthew Dempsky Reviewed-by: David Chase --- src/cmd/internal/objabi/flag.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/cmd/internal/objabi/flag.go b/src/cmd/internal/objabi/flag.go index 847ed48cfb..ee7d2fed49 100644 --- a/src/cmd/internal/objabi/flag.go +++ b/src/cmd/internal/objabi/flag.go @@ -7,6 +7,7 @@ package objabi import ( "flag" "fmt" + "internal/bisect" "internal/buildcfg" "io" "log" @@ -262,8 +263,8 @@ func NewDebugFlag(debug interface{}, debugSSA DebugSSA) *DebugFlag { switch ptr.(type) { default: - panic(fmt.Sprintf("debug.%s has invalid type %v (must be int or string)", f.Name, f.Type)) - case *int, *string: + panic(fmt.Sprintf("debug.%s has invalid type %v (must be int, string, or *bisect.Matcher)", f.Name, f.Type)) + case *int, *string, **bisect.Matcher: // ok } flag.tab[name] = debugField{name, help, concurrent == "ok", ptr} @@ -328,6 +329,12 @@ func (f *DebugFlag) Set(debugstr string) error { log.Fatalf("invalid debug value %v", name) } *vp = val + case **bisect.Matcher: + var err error + *vp, err = bisect.New(valstring) + if err != nil { + log.Fatalf("debug flag %v: %v", name, err) + } default: panic("bad debugtab type") } -- 2.50.0