fix various -Wdeclaration-after-statement, with and without --enable-smallstack.

This commit is contained in:
Daniel Pouzzner
2022-05-06 13:31:33 -05:00
parent e1aefc08ac
commit 99b44f15ef
5 changed files with 56 additions and 29 deletions

View File

@@ -5482,6 +5482,11 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b)
} }
#else #else
{ {
word32 idx = 0;
int sz;
byte lbit = 0;
int rawLen;
unsigned char* rawKey;
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
RsaKey *rsa = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL, RsaKey *rsa = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL,
DYNAMIC_TYPE_RSA); DYNAMIC_TYPE_RSA);
@@ -5492,11 +5497,6 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b)
#else #else
RsaKey rsa[1]; RsaKey rsa[1];
#endif #endif
word32 idx = 0;
int sz;
byte lbit = 0;
int rawLen;
unsigned char* rawKey;
if (wc_InitRsaKey(rsa, NULL) != 0) { if (wc_InitRsaKey(rsa, NULL) != 0) {
WOLFSSL_MSG("wc_InitRsaKey failure"); WOLFSSL_MSG("wc_InitRsaKey failure");

View File

@@ -3648,6 +3648,7 @@ void bench_md5(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MD5_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -3741,6 +3742,7 @@ void bench_sha(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -3832,6 +3834,7 @@ void bench_sha224(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA224_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -3918,6 +3921,7 @@ void bench_sha256(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA256_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -4007,6 +4011,7 @@ void bench_sha384(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA384_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -4093,6 +4098,7 @@ void bench_sha512(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA512_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -4181,6 +4187,7 @@ void bench_sha3_224(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_224_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -4267,6 +4274,7 @@ void bench_sha3_256(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_256_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -4353,6 +4361,7 @@ void bench_sha3_384(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_384_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -4439,6 +4448,7 @@ void bench_sha3_512(int useDeviceID)
double start; double start;
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_SHA3_512_DIGEST_SIZE, HEAP_HINT);
/* clear for done cleanup */ /* clear for done cleanup */
XMEMSET(hash, 0, sizeof(hash)); XMEMSET(hash, 0, sizeof(hash));
@@ -4805,6 +4815,7 @@ static void bench_hmac(int useDeviceID, int type, int digestSz,
int ret = 0, i, count = 0, times, pending = 0; int ret = 0, i, count = 0, times, pending = 0;
#ifdef WOLFSSL_ASYNC_CRYPT #ifdef WOLFSSL_ASYNC_CRYPT
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, WC_MAX_DIGEST_SIZE, HEAP_HINT);
#else #else
byte digest[BENCH_MAX_PENDING][WC_MAX_DIGEST_SIZE]; byte digest[BENCH_MAX_PENDING][WC_MAX_DIGEST_SIZE];
#endif #endif
@@ -5619,6 +5630,11 @@ void bench_dh(int useDeviceID)
WC_DECLARE_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
WC_DECLARE_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT); WC_DECLARE_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT);
WC_DECLARE_VAR(priv2, byte, BENCH_DH_PRIV_SIZE, HEAP_HINT); WC_DECLARE_VAR(priv2, byte, BENCH_DH_PRIV_SIZE, HEAP_HINT);
WC_INIT_ARRAY(pub, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
WC_INIT_ARRAY(agree, byte, BENCH_MAX_PENDING, BENCH_DH_KEY_SIZE, HEAP_HINT);
WC_INIT_ARRAY(priv, byte, BENCH_MAX_PENDING, BENCH_DH_PRIV_SIZE, HEAP_HINT);
#ifdef WC_DECLARE_VAR_IS_HEAP_ALLOC #ifdef WC_DECLARE_VAR_IS_HEAP_ALLOC
if (pub[0] == NULL || pub2 == NULL || agree[0] == NULL || priv[0] == NULL || priv2 == NULL) { if (pub[0] == NULL || pub2 == NULL || agree[0] == NULL || priv[0] == NULL || priv2 == NULL) {
ret = MEMORY_E; ret = MEMORY_E;
@@ -5920,6 +5936,14 @@ void bench_ecc(int useDeviceID, int curveId)
WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT); WC_DECLARE_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif #endif
#ifdef HAVE_ECC_DHE
WC_INIT_ARRAY(shared, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif
#if !defined(NO_ASN) && defined(HAVE_ECC_SIGN)
WC_INIT_ARRAY(sig, byte, BENCH_MAX_PENDING, ECC_MAX_SIG_SIZE, HEAP_HINT);
WC_INIT_ARRAY(digest, byte, BENCH_MAX_PENDING, MAX_ECC_BYTES, HEAP_HINT);
#endif
#ifdef WOLFSSL_ASYNC_CRYPT #ifdef WOLFSSL_ASYNC_CRYPT
deviceID = useDeviceID ? devId : INVALID_DEVID; deviceID = useDeviceID ? devId : INVALID_DEVID;
#else #else

View File

@@ -271,7 +271,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNGETDATA(name, cnt) \ #define DECL_ASNGETDATA(name, cnt) \
ASNGetData* name = NULL; ASNGetData* name = NULL
/* Allocates the dynamic BER decoding data. /* Allocates the dynamic BER decoding data.
* *
@@ -327,7 +327,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNSETDATA(name, cnt) \ #define DECL_ASNSETDATA(name, cnt) \
ASNSetData* name = NULL; ASNSetData* name = NULL
/* Allocates the dynamic DER encoding data. /* Allocates the dynamic DER encoding data.
* *
@@ -383,7 +383,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNGETDATA(name, cnt) \ #define DECL_ASNGETDATA(name, cnt) \
ASNGetData name[cnt]; ASNGetData name[cnt]
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@@ -402,7 +402,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] heap Dynamic memory allocation hint. * @param [in] heap Dynamic memory allocation hint.
*/ */
#define CALLOC_ASNGETDATA(name, cnt, err, heap) \ #define CALLOC_ASNGETDATA(name, cnt, err, heap) \
XMEMSET(name, 0, sizeof(name)); XMEMSET(name, 0, sizeof(name))
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@@ -417,7 +417,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] cnt Number of elements required. * @param [in] cnt Number of elements required.
*/ */
#define DECL_ASNSETDATA(name, cnt) \ #define DECL_ASNSETDATA(name, cnt) \
ASNSetData name[cnt]; ASNSetData name[cnt]
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@@ -436,7 +436,7 @@ static word32 SizeASNLength(word32 length)
* @param [in] heap Dynamic memory allocation hint. * @param [in] heap Dynamic memory allocation hint.
*/ */
#define CALLOC_ASNSETDATA(name, cnt, err, heap) \ #define CALLOC_ASNSETDATA(name, cnt, err, heap) \
XMEMSET(name, 0, sizeof(name)); XMEMSET(name, 0, sizeof(name))
/* No implementation as declartion is static. /* No implementation as declartion is static.
* *
@@ -28634,7 +28634,9 @@ static int DecodeAsymKey(const byte* input, word32* inOutIdx, word32 inSz,
const byte* priv; const byte* priv;
const byte* pub; const byte* pub;
#else #else
int ret = 0;
DECL_ASNGETDATA(dataASN, edKeyASN_Length); DECL_ASNGETDATA(dataASN, edKeyASN_Length);
CALLOC_ASNGETDATA(dataASN, edKeyASN_Length, ret, NULL);
#endif #endif
if (input == NULL || inOutIdx == NULL || inSz == 0 || if (input == NULL || inOutIdx == NULL || inSz == 0 ||
@@ -28714,10 +28716,6 @@ static int DecodeAsymKey(const byte* input, word32* inOutIdx, word32 inSz,
return ASN_PARSE_E; return ASN_PARSE_E;
return 0; return 0;
#else #else
int ret = 0;
CALLOC_ASNGETDATA(dataASN, edKeyASN_Length, ret, NULL);
if (ret == 0) { if (ret == 0) {
/* Require OID. */ /* Require OID. */
word32 oidSz; word32 oidSz;

View File

@@ -15740,7 +15740,7 @@ static int dh_fips_generate_test(WC_RNG *rng)
{ {
int ret = 0; int ret = 0;
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
DhKey *key = (DhKey *)XMALLOC(sizeof *key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);; DhKey *key = (DhKey *)XMALLOC(sizeof *key, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
#else #else
DhKey key[1]; DhKey key[1];
#endif #endif
@@ -19570,6 +19570,7 @@ WOLFSSL_TEST_SUBROUTINE int openssl_pkey1_test(void)
sizeof_client_cert_der_4096, SSL_FILETYPE_ASN1); sizeof_client_cert_der_4096, SSL_FILETYPE_ASN1);
keyLenBits = 4096; keyLenBits = 4096;
#else #else
{
XFILE f; XFILE f;
f = XFOPEN(clientKey, "rb"); f = XFOPEN(clientKey, "rb");
@@ -19583,6 +19584,7 @@ WOLFSSL_TEST_SUBROUTINE int openssl_pkey1_test(void)
cliKeySz = (long)XFREAD(tmp, 1, FOURK_BUF, f); cliKeySz = (long)XFREAD(tmp, 1, FOURK_BUF, f);
XFCLOSE(f); XFCLOSE(f);
}
/* using existing wolfSSL api to get public and private key */ /* using existing wolfSSL api to get public and private key */
x509 = wolfSSL_X509_load_certificate_file(clientCert, SSL_FILETYPE_ASN1); x509 = wolfSSL_X509_load_certificate_file(clientCert, SSL_FILETYPE_ASN1);
@@ -23360,7 +23362,7 @@ static int ecc_exp_imp_test(ecc_key* key)
int ret; int ret;
int curve_id; int curve_id;
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
ecc_key *keyImp = (ecc_key *)XMALLOC(sizeof *keyImp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);; ecc_key *keyImp = (ecc_key *)XMALLOC(sizeof *keyImp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
#else #else
ecc_key keyImp[1]; ecc_key keyImp[1];
#endif #endif

View File

@@ -515,7 +515,8 @@ decouple library dependencies with standard string, memory and so on.
VAR_TYPE* VAR_NAME = (VAR_TYPE*)XMALLOC(sizeof(VAR_TYPE) * (VAR_SIZE), (HEAP), DYNAMIC_TYPE_WOLF_BIGINT) VAR_TYPE* VAR_NAME = (VAR_TYPE*)XMALLOC(sizeof(VAR_TYPE) * (VAR_SIZE), (HEAP), DYNAMIC_TYPE_WOLF_BIGINT)
#define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ #define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
VAR_TYPE* VAR_NAME[VAR_ITEMS]; \ VAR_TYPE* VAR_NAME[VAR_ITEMS]; \
int idx##VAR_NAME, inner_idx_##VAR_NAME; \ int idx##VAR_NAME, inner_idx_##VAR_NAME
#define WC_INIT_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
for (idx##VAR_NAME=0; idx##VAR_NAME<(VAR_ITEMS); idx##VAR_NAME++) { \ for (idx##VAR_NAME=0; idx##VAR_NAME<(VAR_ITEMS); idx##VAR_NAME++) { \
(VAR_NAME)[idx##VAR_NAME] = (VAR_TYPE*)XMALLOC(VAR_SIZE, (HEAP), DYNAMIC_TYPE_WOLF_BIGINT); \ (VAR_NAME)[idx##VAR_NAME] = (VAR_TYPE*)XMALLOC(VAR_SIZE, (HEAP), DYNAMIC_TYPE_WOLF_BIGINT); \
if ((VAR_NAME)[idx##VAR_NAME] == NULL) { \ if ((VAR_NAME)[idx##VAR_NAME] == NULL) { \
@@ -538,7 +539,8 @@ decouple library dependencies with standard string, memory and so on.
#define WC_DECLARE_ARRAY_DYNAMIC_DEC(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ #define WC_DECLARE_ARRAY_DYNAMIC_DEC(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP)
#define WC_DECLARE_ARRAY_DYNAMIC_EXE(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) #define WC_DECLARE_ARRAY_DYNAMIC_EXE(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
WC_INIT_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP)
#define WC_FREE_ARRAY_DYNAMIC(VAR_NAME, VAR_ITEMS, HEAP) \ #define WC_FREE_ARRAY_DYNAMIC(VAR_NAME, VAR_ITEMS, HEAP) \
WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP) WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP)
#else #else
@@ -547,6 +549,7 @@ decouple library dependencies with standard string, memory and so on.
VAR_TYPE VAR_NAME[VAR_SIZE] VAR_TYPE VAR_NAME[VAR_SIZE]
#define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \ #define WC_DECLARE_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) \
VAR_TYPE VAR_NAME[VAR_ITEMS][VAR_SIZE] VAR_TYPE VAR_NAME[VAR_ITEMS][VAR_SIZE]
#define WC_INIT_ARRAY(VAR_NAME, VAR_TYPE, VAR_ITEMS, VAR_SIZE, HEAP) do {} while(0)
#define WC_FREE_VAR(VAR_NAME, HEAP) /* nothing to free, its stack */ #define WC_FREE_VAR(VAR_NAME, HEAP) /* nothing to free, its stack */
#define WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP) /* nothing to free, its stack */ #define WC_FREE_ARRAY(VAR_NAME, VAR_ITEMS, HEAP) /* nothing to free, its stack */