get rid of alloca() in compiler
diff --git a/tests/tests-c-compiler/check-src/check-22.-fwide-types.c b/tests/tests-c-compiler/check-src/check-22.-fwide-types.c
index 991f262..2b3a542 100644
--- a/tests/tests-c-compiler/check-src/check-22.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-22.-fwide-types.c
@@ -117,14 +117,11 @@
static void
try_corrupt(uint8_t *buf, size_t size) {
- uint8_t *tmp;
- int i;
+ uint8_t tmp[size];
fprintf(stderr, "\nCorrupting...\n");
- tmp = alloca(size);
-
- for(i = 0; i < 1000; i++) {
+ for(int i = 0; i < 1000; i++) {
int loc;
memcpy(tmp, buf, size);
diff --git a/tests/tests-c-compiler/check-src/check-24.-fwide-types.c b/tests/tests-c-compiler/check-src/check-24.-fwide-types.c
index 8cd5476..aad7fb8 100644
--- a/tests/tests-c-compiler/check-src/check-24.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-24.-fwide-types.c
@@ -62,14 +62,11 @@
static void
try_corrupt(uint8_t *buf, size_t size) {
- uint8_t *tmp;
- int i;
+ uint8_t tmp[size];
fprintf(stderr, "\nCorrupting...\n");
- tmp = alloca(size);
-
- for(i = 0; i < 1000; i++) {
+ for(int i = 0; i < 1000; i++) {
int loc;
memcpy(tmp, buf, size);
diff --git a/tests/tests-c-compiler/check-src/check-25.-fwide-types.c b/tests/tests-c-compiler/check-src/check-25.-fwide-types.c
index 41a90bf..fda63c3 100644
--- a/tests/tests-c-compiler/check-src/check-25.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-25.-fwide-types.c
@@ -141,14 +141,11 @@
static void
try_corrupt(uint8_t *buf, size_t size, int allow_consume) {
- uint8_t *tmp;
- int i;
+ uint8_t tmp[size];
fprintf(stderr, "\nCorrupting...\n");
- tmp = alloca(size);
-
- for(i = 0; i < 1000; i++) {
+ for(int i = 0; i < 1000; i++) {
int loc;
memcpy(tmp, buf, size);
@@ -173,10 +170,9 @@
partial_read(uint8_t *buf, size_t size) {
T_t t, *tp;
asn_dec_rval_t rval;
- size_t i1, i2;
- uint8_t *tbuf1 = alloca(size);
- uint8_t *tbuf2 = alloca(size);
- uint8_t *tbuf3 = alloca(size);
+ uint8_t tbuf1[size];
+ uint8_t tbuf2[size];
+ uint8_t tbuf3[size];
fprintf(stderr, "\nPartial read sequence...\n");
@@ -186,8 +182,8 @@
* ^ buf ^ buf+size
* Try to read block by block.
*/
- for(i1 = 0; i1 < size; i1++) {
- for(i2 = i1; i2 < size; i2++) {
+ for(size_t i1 = 0; i1 < size; i1++) {
+ for(size_t i2 = i1; i2 < size; i2++) {
uint8_t *chunk1 = buf;
size_t size1 = i1;
uint8_t *chunk2 = buf + size1;
diff --git a/tests/tests-c-compiler/check-src/check-30.-fwide-types.c b/tests/tests-c-compiler/check-src/check-30.-fwide-types.c
index e4a4737..1843080 100644
--- a/tests/tests-c-compiler/check-src/check-30.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-30.-fwide-types.c
@@ -216,14 +216,11 @@
static void
try_corrupt(uint8_t *buf, size_t size) {
- uint8_t *tmp;
- int i;
+ uint8_t tmp[size];
fprintf(stderr, "\nCorrupting...\n");
- tmp = alloca(size);
-
- for(i = 0; i < 1000; i++) {
+ for(int i = 0; i < 1000; i++) {
int loc;
memcpy(tmp, buf, size);
diff --git a/tests/tests-c-compiler/check-src/check-31.-fwide-types.c b/tests/tests-c-compiler/check-src/check-31.-fwide-types.c
index 5cc11e3..a6bd772 100644
--- a/tests/tests-c-compiler/check-src/check-31.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-31.-fwide-types.c
@@ -178,14 +178,11 @@
static void
try_corrupt(uint8_t *buf, size_t size) {
- uint8_t *tmp;
- int i;
+ uint8_t tmp[size];
fprintf(stderr, "\nCorrupting...\n");
- tmp = alloca(size);
-
- for(i = 0; i < 1000; i++) {
+ for(int i = 0; i < 1000; i++) {
int loc;
memcpy(tmp, buf, size);
diff --git a/tests/tests-c-compiler/check-src/check-35.c b/tests/tests-c-compiler/check-src/check-35.c
index edc2ea2..f4e797c 100644
--- a/tests/tests-c-compiler/check-src/check-35.c
+++ b/tests/tests-c-compiler/check-src/check-35.c
@@ -172,7 +172,8 @@
size_t i;
buf_size = cmp_buf_size + 100;
- buf = alloca(buf_size);
+ uint8_t scratch[buf_size];
+ buf = scratch;
buf_pos = 0;
/*
@@ -202,9 +203,9 @@
T_t t, *tp;
asn_dec_rval_t rval;
size_t i1, i2;
- uint8_t *data1 = alloca(size);
- uint8_t *data2 = alloca(size);
- uint8_t *data3 = alloca(size);
+ uint8_t data1[size];
+ uint8_t data2[size];
+ uint8_t data3[size];
fprintf(stderr, "\nPartial read sequence...\n");
diff --git a/tests/tests-c-compiler/check-src/check-41.-fwide-types.c b/tests/tests-c-compiler/check-src/check-41.-fwide-types.c
index 6e21cf1..98741f5 100644
--- a/tests/tests-c-compiler/check-src/check-41.-fwide-types.c
+++ b/tests/tests-c-compiler/check-src/check-41.-fwide-types.c
@@ -188,7 +188,8 @@
size_t i;
buf_size = cmp_buf_size + 100;
- buffer = alloca(buf_size);
+ uint8_t scratch[buf_size];
+ buffer = scratch;
buf_pos = 0;
/*
@@ -211,16 +212,17 @@
}
assert(buffer[i] == cmp_buf[i]);
}
+
+ buffer = 0;
}
static void
partial_read(uint8_t *data, size_t size) {
T_t t, *tp;
asn_dec_rval_t rval;
- size_t i1, i2;
- uint8_t *data1 = alloca(size);
- uint8_t *data2 = alloca(size);
- uint8_t *data3 = alloca(size);
+ uint8_t data1[size];
+ uint8_t data2[size];
+ uint8_t data3[size];
fprintf(stderr, "\nPartial read sequence...\n");
@@ -230,8 +232,8 @@
* ^ data ^ data+size
* Try to read block by block.
*/
- for(i1 = 0; i1 < size; i1++) {
- for(i2 = i1; i2 < size; i2++) {
+ for(size_t i1 = 0; i1 < size; i1++) {
+ for(size_t i2 = i1; i2 < size; i2++) {
uint8_t *chunk1 = data;
size_t size1 = i1;
uint8_t *chunk2 = data + size1;
diff --git a/tests/tests-c-compiler/check-src/check-41.c b/tests/tests-c-compiler/check-src/check-41.c
index e076894..483229e 100644
--- a/tests/tests-c-compiler/check-src/check-41.c
+++ b/tests/tests-c-compiler/check-src/check-41.c
@@ -95,7 +95,8 @@
int i;
buf_size = cmp_buf_size + 100;
- buf = alloca(buf_size);
+ uint8_t scratch[buf_size];
+ buf = scratch;
buf_pos = 0;
/*
@@ -118,16 +119,17 @@
}
assert(buf[i] == cmp_buf[i]);
}
+
+ buf = 0;
}
static void
partial_read(uint8_t *buf_0, size_t size) {
T_t t, *tp;
asn_dec_rval_t rval;
- size_t i1, i2;
- uint8_t *buf_1 = alloca(size);
- uint8_t *buf_2 = alloca(size);
- uint8_t *buf_3 = alloca(size);
+ uint8_t buf_1[size];
+ uint8_t buf_2[size];
+ uint8_t buf_3[size];
fprintf(stderr, "\nPartial read sequence...\n");
@@ -137,8 +139,8 @@
* ^ buf_0 ^ buf_0+size
* Try to read block by block.
*/
- for(i1 = 0; i1 < size; i1++) {
- for(i2 = i1; i2 < size; i2++) {
+ for(size_t i1 = 0; i1 < size; i1++) {
+ for(size_t i2 = i1; i2 < size; i2++) {
uint8_t *chunk1 = buf_0;
size_t size1 = i1;
uint8_t *chunk2 = buf_0 + size1;
diff --git a/tests/tests-c-compiler/check-src/check-42.c b/tests/tests-c-compiler/check-src/check-42.c
index 8a59410..8d5868e 100644
--- a/tests/tests-c-compiler/check-src/check-42.c
+++ b/tests/tests-c-compiler/check-src/check-42.c
@@ -113,7 +113,8 @@
asn_fprint(stderr, &asn_DEF_LogLine, &ll);
buf_size = 128;
- buf = alloca(buf_size);
+ uint8_t scratch[buf_size];
+ buf = scratch;
erval = der_encode(&asn_DEF_LogLine, &ll, buf_fill, 0);
assert(erval.encoded > 1);
fprintf(stderr, "Encoded in %zd bytes\n", erval.encoded);