mirror of
https://github.com/golang/go
synced 2024-11-14 09:10:27 -07:00
8ea27e117f
Updates #30228 Change-Id: I84bc705591bdb3da0106404b24353251939355b8 Reviewed-on: https://go-review.googlesource.com/c/163209 Reviewed-by: Jay Conrod <jayconrod@google.com>
35 lines
766 B
Go
35 lines
766 B
Go
// 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.
|
|
|
|
// Test that C.malloc does not return nil.
|
|
|
|
package main
|
|
|
|
// #include <stdlib.h>
|
|
import "C"
|
|
|
|
import (
|
|
"fmt"
|
|
"runtime"
|
|
)
|
|
|
|
func main() {
|
|
var size C.size_t
|
|
size--
|
|
|
|
// The Dragonfly libc succeeds when asked to allocate
|
|
// 0xffffffffffffffff bytes, so pass a different value that
|
|
// causes it to fail.
|
|
if runtime.GOOS == "dragonfly" {
|
|
size = C.size_t(0x7fffffff << (32 * (^uintptr(0) >> 63)))
|
|
}
|
|
|
|
p := C.malloc(size)
|
|
if p == nil {
|
|
fmt.Println("malloc: C.malloc returned nil")
|
|
// Just exit normally--the test script expects this
|
|
// program to crash, so exiting normally indicates failure.
|
|
}
|
|
}
|