1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-25 08:12:11 -07:00

Arguments to the varargs function mps_pool_create must be cast, otherwise the default c promotion rules will result in a constant value lke 64 being protomoted to int (4 bytes) but decoded (wrongly) as size_t (8 bytes).

Copied from Perforce
 Change: 187943
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Gareth Rees 2015-06-15 19:34:45 +01:00
parent e269e9c283
commit 79f234b217
19 changed files with 65 additions and 57 deletions

View file

@ -32,7 +32,9 @@ static void fillup(void)
mps_addr_t a;
char *b;
mps_pool_create(&poolmv, arena, mps_class_mv(), 64, 64, 64);
die(mps_pool_create(&poolmv, arena, mps_class_mv(),
(size_t)64, (size_t)64, (size_t)64),
"mps_pool_create");
size=1024ul*1024ul;
while (size) {
while (mps_alloc(&a, poolmv, size)==MPS_RES_OK) {

View file

@ -53,10 +53,10 @@ static void test(void) {
mps_arena_commit_limit_set(arena, COMLIMIT1);
die(
mps_pool_create(&pool, arena, mps_class_mvff(),
EXTENDBY, 8, 8, 0, 0, 1),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mvff(),
(size_t)EXTENDBY, (size_t)8, (mps_align_t)8,
(mps_bool_t)0, (mps_bool_t)0, (mps_bool_t)1),
"create MVFF pool");
for (i = 0; i < NSMALL; i++) {
die(mps_alloc(&smallObjects[i], pool, SMALLSIZE), "small alloc failed");

View file

@ -43,10 +43,10 @@ static void test(void) {
mps_arena_commit_limit_set(arena, COMLIMIT1);
die(
mps_pool_create(&pool, arena, mps_class_mvff(),
EXTENDBY, 8, 8, 0, 0, 1),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mvff(),
(size_t)EXTENDBY, (size_t)8, (mps_align_t)8,
(mps_bool_t)0, (mps_bool_t)0, (mps_bool_t)1),
"create MVFF pool");
for (i = 0; i < NSMALL; i++) {
die(mps_alloc(&smallObjects[i], pool, SMALLSIZE), "small alloc failed");

View file

@ -29,10 +29,10 @@ static void test(void) {
(size_t) (1024*1024*50)), "create arena");
cdie(mps_thread_reg(&thread, arena), "register thread");
die(
mps_pool_create(&pool, arena, mps_class_mvff_debug(), &debugOpts,
8192, 8, 8, 0, 0, 1),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mvff_debug(), &debugOpts,
(size_t)8192, (size_t)8, (mps_align_t)8,
(mps_bool_t)0, (mps_bool_t)0, (mps_bool_t)1),
"create MVFF pool");
die(mps_alloc(&a, pool, 64), "alloc a");
die(mps_alloc(&b, pool, 64), "alloc b");

View file

@ -29,10 +29,10 @@ static void test(void) {
(size_t) (1024*1024*50)), "create arena");
cdie(mps_thread_reg(&thread, arena), "register thread");
die(
mps_pool_create(&pool, arena, mps_class_mvff_debug(), &debugOpts,
8192, 8, 8, 1, 0, 0),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mvff_debug(), &debugOpts,
(size_t)8192, (size_t)8, (mps_align_t)8,
(mps_bool_t)1, (mps_bool_t)0, (mps_bool_t)0),
"create MVFF pool");
die(mps_alloc(&a, pool, 64), "alloc a");

View file

@ -29,10 +29,10 @@ static void test(void) {
(size_t) (1024*1024*50)), "create arena");
cdie(mps_thread_reg(&thread, arena), "register thread");
die(
mps_pool_create(&pool, arena, mps_class_mvff_debug(), &debugOpts,
8192, 8, 8, 0, 1, 0),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mvff_debug(), &debugOpts,
(size_t)8192, (size_t)8, (mps_align_t)8,
(mps_bool_t)0, (mps_bool_t)1, (mps_bool_t)0),
"create MVFF pool");
die(mps_alloc(&a, pool, 63), "alloc a");

View file

@ -29,10 +29,9 @@ static void test(void) {
(size_t) (1024*1024*50)), "create arena");
cdie(mps_thread_reg(&thread, arena), "register thread");
die(
mps_pool_create(&pool, arena, mps_class_mv_debug(), &debugOpts,
8192, 8, 65536),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mv_debug(), &debugOpts,
(size_t)8192, (size_t)8, (size_t)65536),
"create MV pool");
die(mps_alloc(&a, pool, 64), "alloc a");

View file

@ -32,10 +32,9 @@ static void test(void)
(size_t) (1024*1024*50)), "create arena");
cdie(mps_thread_reg(&thread, arena), "register thread");
die(
mps_pool_create(&pool, arena, mps_class_mv_debug(), &debugOpts,
8192, 8, 65536),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mv_debug(), &debugOpts,
(size_t)8192, (size_t)8, (size_t)65536),
"create MVFF pool");
die(mps_alloc(&a, pool, 64), "alloc a");

View file

@ -29,10 +29,9 @@ static void test(void) {
(size_t) (1024*1024*50)), "create arena");
cdie(mps_thread_reg(&thread, arena), "register thread");
die(
mps_pool_create(&pool, arena, mps_class_mv_debug(), &debugOpts,
8192, 8, 65536),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mv_debug(), &debugOpts,
(size_t)8192, (size_t)8, (size_t)65536),
"create MVFF pool");
die(mps_alloc(&a, pool, 63), "alloc a");

View file

@ -53,10 +53,10 @@ static void test(void) {
mps_arena_commit_limit_set(arena, COMLIMIT1);
die(
mps_pool_create(&pool, arena, mps_class_mvff(),
EXTENDBY, 8, MPS_PF_ALIGN, 0, 0, 1),
"create MVFF pool");
die(mps_pool_create(&pool, arena, mps_class_mvff(),
(size_t)EXTENDBY, (size_t)8, (mps_align_t)MPS_PF_ALIGN,
(mps_bool_t)0, (mps_bool_t)0, (mps_bool_t)1),
"create MVFF pool");
for (i = 0; i < NSMALL; i++) {
die(mps_alloc(&smallObjects[i], pool, SMALLSIZE), "small alloc failed");

View file

@ -5,7 +5,7 @@ TEST_HEADER
language = c
link = testlib.o newfmt.o
OUTPUT_SPEC
errtext = create pool: COMMIT_LIMIT
errtext = create AMC pool: COMMIT_LIMIT
END_HEADER
*/
@ -48,8 +48,8 @@ static void test(void)
die(mps_chain_create(&chain, arena, genCOUNT, testChain), "chain_create");
die(mps_pool_create(&pool, arena, mps_class_mv(),
1024*32, 1024*16, 1024*256),
"pool");
(size_t)(1024*32), (size_t)(1024*16), (size_t)(1024*256)),
"create MV pool");
do {
res = mps_alloc(&q, pool, 64*1024);
@ -60,7 +60,7 @@ static void test(void)
while (1) {
p++;
die(mmqa_pool_create_chain(&pool, arena, mps_class_amc(), format, chain),
"create pool");
"create AMC pool");
report("pool", "%i", p);
}

View file

@ -49,14 +49,14 @@ static void test(void)
die(mps_chain_create(&chain, arena, genCOUNT, testChain), "chain_create");
die(mps_pool_create(&pool, arena, mps_class_mv(),
1024*32, 1024*16, 1024*256),
"pool");
(size_t)(1024*32), (size_t)(1024*16), (size_t)(1024*256)),
"create MV pool");
while (mps_alloc(&q, pool, 64*1024)==MPS_RES_OK);
p = 0;
cdie(mmqa_pool_create_chain(&pool, arena, mps_class_amc(), format, chain),
"create pool");
"create AMC pool");
while (1) {
p++;

View file

@ -33,7 +33,8 @@ static void test(void) {
mps_stack_scan_ambig, stackpointer, 0), "create root");
die(mps_pool_create(&pool, arena, mps_class_mv(),
1024*32, 1024*16, 1024*256), "pool");
(size_t)(1024*32), (size_t)(1024*16), (size_t)(1024*256)),
"create MV pool");
while (mps_alloc(&q, pool, 64*1024)==MPS_RES_OK);
p=0;

View file

@ -19,7 +19,8 @@ static void test(void) {
die(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create");
die(mps_pool_create(&pool, arena, mps_class_mv(),
1024*32, 1024*16, 1024*256), "pool");
(size_t)(1024*32), (size_t)(1024*16), (size_t)(1024*256)),
"create MV pool");
for (p=0; p<2000; p++) {
die(mps_alloc(&q, pool, 1024*1024), "alloc");

View file

@ -19,7 +19,8 @@ static void test(void) {
die(mps_arena_create(&arena, mps_arena_class_vm(), mmqaArenaSIZE), "create");
die(mps_pool_create(&pool, arena, mps_class_mv(),
1024*32, 1024*16, 1024*256), "pool");
(size_t)(1024*32), (size_t)(1024*16), (size_t)(1024*256)),
"create MV pool");
die(mps_alloc(&q, pool, 1024*1024), "alloc");

View file

@ -32,7 +32,7 @@ static void test(void)
die(mps_arena_commit_limit_set(arena, VMSIZE), "commit limit");
die(mps_pool_create(&pool, arena, mps_class_mv(),
EXTENDBY, AVGSIZE, EXTENDBY),
(size_t)EXTENDBY, (size_t)AVGSIZE, (size_t)EXTENDBY),
"pool create");
for (p=0; p<ITERATE; p++) {

View file

@ -100,9 +100,9 @@ static void test(void) {
mps_pool_create(&poolawl, arena, mps_class_awl(), format, getassociated),
"create awl pool");
cdie(
mps_pool_create(&poolmv, arena, mps_class_mv(), 0x4000, 128, 0x4000),
"create mv pool");
cdie(mps_pool_create(&poolmv, arena, mps_class_mv(),
(size_t)0x4000, (size_t)128, (size_t)0x4000),
"create mv pool");
cdie(
mps_ap_create(&apawl, poolawl, mps_rank_exact()),

View file

@ -19,7 +19,9 @@ END_HEADER
#include "mpsavm.h"
#include "newfmt.h"
#define EXTEND_BY ((size_t)(1024*128))
#define MEAN_SIZE ((size_t)(1024*64))
#define MAX_SIZE ((size_t)(1024*1024))
#define genCOUNT (3)
static mps_gen_param_s testChain[genCOUNT] = {
@ -66,7 +68,7 @@ static void test(void)
comment("Sizes in megabytes:");
die(mps_pool_create(&poolMV, arena, mps_class_mv(),
1024*128, 1024*64, 1024*1024),
EXTEND_BY, MEAN_SIZE, MAX_SIZE),
"create MV pool");
i = 0;
while ((r=mps_alloc(&p, poolMV, 1024*1024)) == 0) i++;
@ -76,7 +78,7 @@ static void test(void)
mps_pool_destroy(poolMV);
die(mps_pool_create(&poolMV, arena, mps_class_mv(),
1024*128, 1024*64, 1024*1024),
EXTEND_BY, MEAN_SIZE, MAX_SIZE),
"create MV pool");
i = 0;
while ((r=mps_alloc(&p, poolMV, 1024*1024)) == 0) i++;
@ -88,7 +90,7 @@ static void test(void)
a = allocdumb(ap, 1024*1024*30); /* allocate 30 M object */
die(mps_pool_create(&poolMV, arena, mps_class_mv(),
1024*128, 1024*64, 1024*1024),
EXTEND_BY, MEAN_SIZE, MAX_SIZE),
"create MV pool");
i=0;
while ((r=mps_alloc(&p, poolMV, 1024*1024)) == 0) i++;

View file

@ -32,7 +32,9 @@ static void fillup(void)
mps_addr_t a;
char *b;
mps_pool_create(&poolmv, arena, mps_class_mv(), 64, 64, 64);
die(mps_pool_create(&poolmv, arena, mps_class_mv(),
(size_t)64, (size_t)64, (size_t)64),
"create MV pool");
size=1024ul*1024ul;
while (size) {
while (mps_alloc(&a, poolmv, size)==MPS_RES_OK) {
@ -116,7 +118,9 @@ static void test(void)
for (j=0; j<1000*1024; j++) {
res=allocrdumb(&a, ap, 1024, mps_rank_exact());
if (res == MPS_RES_OK) {
comment("%i ok", j);
if (j % 100000 == 0) {
comment("%i ok", j);
}
} else {
break;
}