mirror of
https://github.com/golang/go
synced 2024-11-27 03:31:29 -07:00
f2f17c0ff2
Update #6677 When a struct contains an anonymous union, use the type and name of the first field in the union. This should make the glibc <sys/resource.h> file work; in that file struct rusage has fields like __extension__ union { long int ru_maxrss; __syscall_slong_t __ru_maxrss_word; }; in which the field that matters is ru_maxrss and __ru_maxrss_word just exists to advance to the next field on systems where the kernel uses long long fields but userspace expects long fields. LGTM=mikioh.mikioh R=golang-codereviews, mikioh.mikioh CC=golang-codereviews https://golang.org/cl/106260044
27 lines
517 B
Go
27 lines
517 B
Go
// Copyright 2014 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.
|
|
//
|
|
// +build ignore
|
|
|
|
package main
|
|
|
|
// This file tests that when cgo -godefs sees a struct with a field
|
|
// that is an anonymous union, the first field in the union is
|
|
// promoted to become a field of the struct. See issue 6677 for
|
|
// background.
|
|
|
|
/*
|
|
typedef struct {
|
|
union {
|
|
long l;
|
|
int c;
|
|
};
|
|
} t;
|
|
*/
|
|
import "C"
|
|
|
|
// Input for cgo -godefs.
|
|
|
|
type T C.t
|