This test verifies that we add an [os,arch] suffix to each diagnostic
that doesn't appear in the default build (=runtime.{GOOS,GOARCH}).

See golang/go#65496.

The two p/*.go files below are written to trigger the same diagnostic
(range, message, source, etc) but varying only by URI.

In the q test, a single location in the common code q.go has two
diagnostics, one of which is tagged.

This test would fail on openbsd/riscv64 because it will be the same as
the default build, so we skip that platform. And it would fail on
*/riscv64 merely because it produces a diagnostic that doesn't include
the riscv64 component (since it's the default). So we disable it for
that GOOS or GOARCH. But the purpose of the test is not coverage
across all configurations, only to test the mechanism in some configs.

-- flags --
-skip_goos=openbsd
-skip_goarch=riscv64

-- go.mod --
module example.com

-- p/p.go --
package p

var _ fmt.Stringer //@diag("fmt", re"unde.*: fmt$")

-- p/p_openbsd_riscv64.go --
package p

var _ fmt.Stringer //@diag("fmt", re"unde.*: fmt \\[openbsd,riscv64\\]")

-- q/q_default.go --
//+build !openbsd && !riscv64

package q

func f(int) int

-- q/q_openbsd_riscv64.go --
package q

func f(string) int

-- q/q.go --
package q

var _ = f() //@ diag(")", re`.*want \(string\) \[openbsd,riscv64\]`), diag(")", re`.*want \(int\)$`)
