C globals are conservatively scanned. This helps
avoid false retention, especially for 32 bit.
LGTM=rsc
R=golang-codereviews, khr, rsc
CC=golang-codereviews
https://golang.org/cl/
102040043
// Runtime helpers.
// used in asm_{386,amd64}.s
+#pragma dataflag NOPTR
byte runtime·aeskeysched[HashRandomBytes];
void
#include "typekind.h"
#include "funcdata.h"
#include "zaexperiment.h"
+#include "../../cmd/ld/textflag.h"
extern byte data[];
extern byte edata[];
enum {
BufSize = 4096,
};
+#pragma dataflag NOPTR
static byte buf[BufSize];
static uintptr nbuf;
// Mark mheap as 'no pointers', it does not contain interesting pointers but occupies ~45K.
#pragma dataflag NOPTR
MHeap runtime·mheap;
+#pragma dataflag NOPTR
MStats mstats;
int32 runtime·checking;
#include "runtime.h"
#include "arch_GOARCH.h"
#include "malloc.h"
+#include "../../cmd/ld/textflag.h"
+#pragma dataflag NOPTR
int32 runtime·class_to_size[NumSizeClasses];
+#pragma dataflag NOPTR
int32 runtime·class_to_allocnpages[NumSizeClasses];
// The SizeToClass lookup is implemented using two arrays,
// size divided by 128 (rounded up). The arrays are filled in
// by InitSizes.
+#pragma dataflag NOPTR
int8 runtime·size_to_class8[1024/8 + 1];
+#pragma dataflag NOPTR
int8 runtime·size_to_class128[(MaxSmallSize-1024)/128 + 1];
void runtime·testdefersizes(void);
void
runtime·get_random_data(byte **rnd, int32 *rnd_len)
{
+ #pragma dataflag NOPTR
static byte urandom_data[HashRandomBytes];
int32 fd;
fd = runtime·open("/dev/urandom", 0 /* O_RDONLY */, 0);
void
runtime·get_random_data(byte **rnd, int32 *rnd_len)
{
+ #pragma dataflag NOPTR
static byte urandom_data[HashRandomBytes];
int32 fd;
fd = runtime·open("/dev/urandom", 0 /* O_RDONLY */, 0);
void
runtime·get_random_data(byte **rnd, int32 *rnd_len)
{
+ #pragma dataflag NOPTR
static byte urandom_data[HashRandomBytes];
int32 fd;
fd = runtime·open("/dev/urandom", 0 /* O_RDONLY */, 0);
void
runtime·get_random_data(byte **rnd, int32 *rnd_len)
{
+ #pragma dataflag NOPTR
static byte urandom_data[HashRandomBytes];
int32 fd;
fd = runtime·open("/dev/urandom", 0 /* O_RDONLY */, 0);
void
runtime·get_random_data(byte **rnd, int32 *rnd_len)
{
+ #pragma dataflag NOPTR
static byte urandom_data[HashRandomBytes];
int32 fd;
fd = runtime·open("/dev/urandom", 0 /* O_RDONLY */, 0);
void
runtime·get_random_data(byte **rnd, int32 *rnd_len)
{
+ #pragma dataflag NOPTR
static byte urandom_data[HashRandomBytes];
int32 fd;
fd = runtime·open("/dev/urandom", 0 /* O_RDONLY */, 0);
uint32 syscalltick;
int64 syscallwhen;
};
+#pragma dataflag NOPTR
static Pdesc pdesc[MaxGomaxprocs];
static uint32