vdexExtractor icon indicating copy to clipboard operation
vdexExtractor copied to clipboard

Build fails on GCC 13.2.1 with `dex_instruction.c:655:43: error: argument 2 of type ‘u4[kMaxVarArgRegs]’ {aka ‘unsigned int[kMaxVarArgRegs]’} declared as a variable length array [-Werror=vla-parameter]`

Open dreirund opened this issue 2 months ago • 0 comments

I am building with GCC version 13.2.1.

./make.sh fails with

[...]
gcc -c -std=c11 -D_GNU_SOURCE -Wall -Wextra -Werror -DVERSION=\"dev-78f283b\" -c dex_instruction.c -o dex_instruction.o
dex_instruction.c:655:43: error: argument 2 of type ‘u4[kMaxVarArgRegs]’ {aka ‘unsigned int[kMaxVarArgRegs]’} declared as a variable length array [-Werror=vla-parameter]
  655 | void dexInstr_getVarArgs(u2 *code_ptr, u4 arg[kMaxVarArgRegs]) {
      |                                        ~~~^~~~~~~~~~~~~~~~~~~
In file included from dex_instruction.c:23:
dex_instruction.h:278:32: note: previously declared as an ordinary array ‘u4[]’ {aka ‘unsigned int[]’}
  278 | void dexInstr_getVarArgs(u2 *, u4[]);
      |                                ^~~~
cc1: all warnings being treated as errors
make: *** [Makefile:56: dex_instruction.o] Error 1

A manual workaround is to issue make CFLAGS="${CFLAGS} -Wno-error=vla-parameter" -C src instead of ./make.sh.

Regards!

dreirund avatar May 05 '24 11:05 dreirund