gcc/libgo/runtime/go-new.c
Ian Lance Taylor 67a546ab45 compiler,runtime: Determine if allocations need new pointers in runtime.
As the removed comment states, if the package being compiled played
    certain tricks with pointers that looked like integers, the compiler
    might allocate space for new pointers unnecessarily.  Since the type
    information on the heap is now precise, this logic can be moved to the
    runtime.
    
    Reviewed-on: https://go-review.googlesource.com/11581

From-SVN: r225757
2015-07-14 01:22:25 +00:00

20 lines
520 B
C

/* go-new.c -- the generic go new() function.
Copyright 2009 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 "go-alloc.h"
#include "runtime.h"
#include "arch.h"
#include "malloc.h"
#include "go-type.h"
void *
__go_new (const struct __go_type_descriptor *td, uintptr_t size)
{
return runtime_mallocgc (size,
(uintptr) td | TypeInfo_SingleObject,
td->__code & GO_NO_POINTERS ? FlagNoScan : 0);
}