// runindir

// Copyright 2021 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.

// Test to verify compiler and linker handling of multiple
// competing map.zero symbol definitions.

package ignored
