We were already checking for _CMalloc, but in fact none of the
builtin functions support returning an error.
Fixes #67707
Change-Id: I0ee432a9f13ace472c3f36f641efc7d18eda0631
Reviewed-on: https://go-review.googlesource.com/c/go/+/589575
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
break
}
if r.Context == ctxCall2 {
- if r.Name.Go == "_CMalloc" {
- error_(r.Pos(), "no two-result form for C.malloc")
+ if builtinDefs[r.Name.Go] != "" {
+ error_(r.Pos(), "no two-result form for C.%s", r.Name.Go)
break
}
// Invent new Name for the two-result function.
"issue33061.go",
"issue50710.go",
"issue67517.go",
+ "issue67707.go",
} {
check(t, file)
}
--- /dev/null
+// Copyright 2024 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 p
+
+import "C"
+
+func F() *C.char {
+ s, err := C.CString("hi") // ERROR HERE: no two-result form
+ if err != nil {
+ println(err)
+ }
+ return s
+}