mirror of
https://github.com/golang/go
synced 2024-11-24 21:50:11 -07:00
ee714947c5
When calling a Go function that returns multiple values from C, cgo generates a structure to hold the values. According to the documentation this structure is called `struct <function-name>_return`. When compiling for gccgo the generated structure name is `struct <function-name>_result`. This change updates the output for gccgo to match the documentation and output for gc. Fixes #20910 Change-Id: Iaea8030a695a7aaf9d9f317447fc05615d8e4adc Reviewed-on: https://go-review.googlesource.com/49350 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
20 lines
459 B
C
20 lines
459 B
C
// Copyright 2017 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.
|
|
|
|
#include <assert.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "_cgo_export.h"
|
|
|
|
/* Test calling a Go function with multiple return values. */
|
|
|
|
void
|
|
callMulti(void)
|
|
{
|
|
struct multi_return result = multi();
|
|
assert(strcmp(result.r0, "multi") == 0);
|
|
assert(result.r1 == 0);
|
|
free(result.r0);
|
|
}
|