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

package a

var S struct {
	Str string `tag`
}

func F() string {
	v := S
	return v.Str
}
