get rid of alloca() in compiler
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;