// Copyright 2020 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 typesinternal | |
import ( | |
"go/types" | |
"reflect" | |
"unsafe" | |
) | |
func SetUsesCgo(conf *types.Config) bool { | |
v := reflect.ValueOf(conf).Elem() | |
f := v.FieldByName("go115UsesCgo") | |
if !f.IsValid() { | |
f = v.FieldByName("UsesCgo") | |
if !f.IsValid() { | |
return false | |
} | |
} | |
addr := unsafe.Pointer(f.UnsafeAddr()) | |
*(*bool)(addr) = true | |
return true | |
} |