UpstandingHackers / hammer

Parser combinators for binary formats, in C. Yes, in C. What? Don't look at me like that.
GNU General Public License v2.0
430 stars 40 forks source link

compiler warning: passing argument 2 of 'h_attr_bool' from incompatible pointer type #186

Open daxim opened 7 years ago

daxim commented 7 years ago

Tests pass, the warning appears to be not harmful. Full log follows. Warning is near the end.

$ git rev-parse HEAD
55280a73eee46fe359911fa8a7f0f447c452242b

$ scons bindings=perl test
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o build/opt/src/t_benchmark.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/t_benchmark.c
gcc -o build/opt/src/t_bitreader.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/t_bitreader.c
gcc -o build/opt/src/t_bitwriter.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/t_bitwriter.c
gcc -o build/opt/src/t_parser.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/t_parser.c
gcc -o build/opt/src/t_grammar.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/t_grammar.c
gcc -o build/opt/src/t_misc.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/t_misc.c
gcc -o build/opt/src/t_regression.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/t_regression.c
gcc -o build/opt/src/test_suite.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include build/opt/src/test_suite.c
gcc -o build/opt/src/parsers/action.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/action.c
gcc -o build/opt/src/parsers/and.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/and.c
gcc -o build/opt/src/parsers/attr_bool.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/attr_bool.c
gcc -o build/opt/src/parsers/bind.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/bind.c
gcc -o build/opt/src/parsers/bits.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/bits.c
gcc -o build/opt/src/parsers/butnot.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/butnot.c
gcc -o build/opt/src/parsers/ch.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/ch.c
gcc -o build/opt/src/parsers/charset.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/charset.c
gcc -o build/opt/src/parsers/choice.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/choice.c
gcc -o build/opt/src/parsers/difference.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/difference.c
gcc -o build/opt/src/parsers/end.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/end.c
gcc -o build/opt/src/parsers/endianness.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/endianness.c
gcc -o build/opt/src/parsers/epsilon.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/epsilon.c
gcc -o build/opt/src/parsers/ignore.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/ignore.c
gcc -o build/opt/src/parsers/ignoreseq.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/ignoreseq.c
gcc -o build/opt/src/parsers/indirect.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/indirect.c
gcc -o build/opt/src/parsers/int_range.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/int_range.c
gcc -o build/opt/src/parsers/many.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/many.c
gcc -o build/opt/src/parsers/not.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/not.c
gcc -o build/opt/src/parsers/nothing.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/nothing.c
gcc -o build/opt/src/parsers/optional.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/optional.c
gcc -o build/opt/src/parsers/permutation.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/permutation.c
gcc -o build/opt/src/parsers/sequence.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/sequence.c
gcc -o build/opt/src/parsers/token.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/token.c
gcc -o build/opt/src/parsers/unimplemented.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/unimplemented.c
gcc -o build/opt/src/parsers/whitespace.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/whitespace.c
gcc -o build/opt/src/parsers/xor.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/xor.c
gcc -o build/opt/src/parsers/value.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/parsers/value.c
gcc -o build/opt/src/backends/packrat.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/backends/packrat.c
gcc -o build/opt/src/backends/llk.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/backends/llk.c
gcc -o build/opt/src/backends/regex.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/backends/regex.c
gcc -o build/opt/src/backends/glr.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/backends/glr.c
gcc -o build/opt/src/backends/lalr.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/backends/lalr.c
gcc -o build/opt/src/backends/lr.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/backends/lr.c
gcc -o build/opt/src/backends/lr0.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/backends/lr0.c
gcc -o build/opt/src/allocator.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/allocator.c
gcc -o build/opt/src/benchmark.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/benchmark.c
gcc -o build/opt/src/bitreader.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/bitreader.c
gcc -o build/opt/src/bitwriter.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/bitwriter.c
gcc -o build/opt/src/cfgrammar.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/cfgrammar.c
gcc -o build/opt/src/datastructures.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/datastructures.c
gcc -o build/opt/src/desugar.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/desugar.c
gcc -o build/opt/src/glue.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/glue.c
gcc -o build/opt/src/hammer.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/hammer.c
gcc -o build/opt/src/pprint.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/pprint.c
gcc -o build/opt/src/registry.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/registry.c
gcc -o build/opt/src/system_allocator.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/system_allocator.c
gcc -o build/opt/src/platform_bsdlike.o -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 build/opt/src/platform_bsdlike.c
ar rc build/opt/src/libhammer.a build/opt/src/parsers/action.o build/opt/src/parsers/and.o build/opt/src/parsers/attr_bool.o build/opt/src/parsers/bind.o build/opt/src/parsers/bits.o build/opt/src/parsers/butnot.o build/opt/src/parsers/ch.o build/opt/src/parsers/charset.o build/opt/src/parsers/choice.o build/opt/src/parsers/difference.o build/opt/src/parsers/end.o build/opt/src/parsers/endianness.o build/opt/src/parsers/epsilon.o build/opt/src/parsers/ignore.o build/opt/src/parsers/ignoreseq.o build/opt/src/parsers/indirect.o build/opt/src/parsers/int_range.o build/opt/src/parsers/many.o build/opt/src/parsers/not.o build/opt/src/parsers/nothing.o build/opt/src/parsers/optional.o build/opt/src/parsers/permutation.o build/opt/src/parsers/sequence.o build/opt/src/parsers/token.o build/opt/src/parsers/unimplemented.o build/opt/src/parsers/whitespace.o build/opt/src/parsers/xor.o build/opt/src/parsers/value.o build/opt/src/backends/packrat.o build/opt/src/backends/llk.o build/opt/src/backends/regex.o build/opt/src/backends/glr.o build/opt/src/backends/lalr.o build/opt/src/backends/lr.o build/opt/src/backends/lr0.o build/opt/src/allocator.o build/opt/src/benchmark.o build/opt/src/bitreader.o build/opt/src/bitwriter.o build/opt/src/cfgrammar.o build/opt/src/datastructures.o build/opt/src/desugar.o build/opt/src/glue.o build/opt/src/hammer.o build/opt/src/pprint.o build/opt/src/registry.o build/opt/src/system_allocator.o build/opt/src/platform_bsdlike.o
ranlib build/opt/src/libhammer.a
gcc -o build/opt/src/parsers/action.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/action.c
gcc -o build/opt/src/parsers/and.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/and.c
gcc -o build/opt/src/parsers/attr_bool.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/attr_bool.c
gcc -o build/opt/src/parsers/bind.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/bind.c
gcc -o build/opt/src/parsers/bits.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/bits.c
gcc -o build/opt/src/parsers/butnot.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/butnot.c
gcc -o build/opt/src/parsers/ch.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/ch.c
gcc -o build/opt/src/parsers/charset.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/charset.c
gcc -o build/opt/src/parsers/choice.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/choice.c
gcc -o build/opt/src/parsers/difference.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/difference.c
gcc -o build/opt/src/parsers/end.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/end.c
gcc -o build/opt/src/parsers/endianness.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/endianness.c
gcc -o build/opt/src/parsers/epsilon.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/epsilon.c
gcc -o build/opt/src/parsers/ignore.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/ignore.c
gcc -o build/opt/src/parsers/ignoreseq.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/ignoreseq.c
gcc -o build/opt/src/parsers/indirect.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/indirect.c
gcc -o build/opt/src/parsers/int_range.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/int_range.c
gcc -o build/opt/src/parsers/many.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/many.c
gcc -o build/opt/src/parsers/not.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/not.c
gcc -o build/opt/src/parsers/nothing.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/nothing.c
gcc -o build/opt/src/parsers/optional.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/optional.c
gcc -o build/opt/src/parsers/permutation.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/permutation.c
gcc -o build/opt/src/parsers/sequence.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/sequence.c
gcc -o build/opt/src/parsers/token.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/token.c
gcc -o build/opt/src/parsers/unimplemented.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/unimplemented.c
gcc -o build/opt/src/parsers/whitespace.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/whitespace.c
gcc -o build/opt/src/parsers/xor.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/xor.c
gcc -o build/opt/src/parsers/value.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/parsers/value.c
gcc -o build/opt/src/backends/packrat.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/backends/packrat.c
gcc -o build/opt/src/backends/llk.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/backends/llk.c
gcc -o build/opt/src/backends/regex.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/backends/regex.c
gcc -o build/opt/src/backends/glr.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/backends/glr.c
gcc -o build/opt/src/backends/lalr.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/backends/lalr.c
gcc -o build/opt/src/backends/lr.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/backends/lr.c
gcc -o build/opt/src/backends/lr0.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/backends/lr0.c
gcc -o build/opt/src/allocator.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/allocator.c
gcc -o build/opt/src/benchmark.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/benchmark.c
gcc -o build/opt/src/bitreader.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/bitreader.c
gcc -o build/opt/src/bitwriter.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/bitwriter.c
gcc -o build/opt/src/cfgrammar.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/cfgrammar.c
gcc -o build/opt/src/datastructures.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/datastructures.c
gcc -o build/opt/src/desugar.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/desugar.c
gcc -o build/opt/src/glue.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/glue.c
gcc -o build/opt/src/hammer.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/hammer.c
gcc -o build/opt/src/pprint.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/pprint.c
gcc -o build/opt/src/registry.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/registry.c
gcc -o build/opt/src/system_allocator.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/system_allocator.c
gcc -o build/opt/src/platform_bsdlike.os -c -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable -O3 -fPIC build/opt/src/platform_bsdlike.c
gcc -o build/opt/src/libhammer.so -shared build/opt/src/parsers/action.os build/opt/src/parsers/and.os build/opt/src/parsers/attr_bool.os build/opt/src/parsers/bind.os build/opt/src/parsers/bits.os build/opt/src/parsers/butnot.os build/opt/src/parsers/ch.os build/opt/src/parsers/charset.os build/opt/src/parsers/choice.os build/opt/src/parsers/difference.os build/opt/src/parsers/end.os build/opt/src/parsers/endianness.os build/opt/src/parsers/epsilon.os build/opt/src/parsers/ignore.os build/opt/src/parsers/ignoreseq.os build/opt/src/parsers/indirect.os build/opt/src/parsers/int_range.os build/opt/src/parsers/many.os build/opt/src/parsers/not.os build/opt/src/parsers/nothing.os build/opt/src/parsers/optional.os build/opt/src/parsers/permutation.os build/opt/src/parsers/sequence.os build/opt/src/parsers/token.os build/opt/src/parsers/unimplemented.os build/opt/src/parsers/whitespace.os build/opt/src/parsers/xor.os build/opt/src/parsers/value.os build/opt/src/backends/packrat.os build/opt/src/backends/llk.os build/opt/src/backends/regex.os build/opt/src/backends/glr.os build/opt/src/backends/lalr.os build/opt/src/backends/lr.os build/opt/src/backends/lr0.os build/opt/src/allocator.os build/opt/src/benchmark.os build/opt/src/bitreader.os build/opt/src/bitwriter.os build/opt/src/cfgrammar.os build/opt/src/datastructures.os build/opt/src/desugar.os build/opt/src/glue.os build/opt/src/hammer.os build/opt/src/pprint.os build/opt/src/registry.os build/opt/src/system_allocator.os build/opt/src/platform_bsdlike.os -lrt
gcc -o build/opt/src/test_suite build/opt/src/t_benchmark.o build/opt/src/t_bitreader.o build/opt/src/t_bitwriter.o build/opt/src/t_parser.o build/opt/src/t_grammar.o build/opt/src/t_misc.o build/opt/src/t_regression.o build/opt/src/test_suite.o -Lbuild/opt/src -lrt -lglib-2.0 -lhammer
env LD_LIBRARY_PATH=build/opt/src build/opt/src/test_suite
/core/bitreader/be: OK
/core/bitreader/le: OK
/core/bitreader/largebits-be: OK
/core/bitreader/largebits-le: OK
/core/bitreader/offset-largebits-be: OK
/core/bitreader/offset-largebits-le: OK
/core/bitreader/ints: OK
/core/bitwriter/be: OK
/core/bitwriter/le: OK
/core/bitwriter/largebits-be: OK
/core/bitwriter/largebits-le: OK
/core/bitwriter/offset-largebits-be: OK
/core/bitwriter/offset-largebits-le: OK
/core/bitwriter/ints: OK
/core/parser/packrat/token: OK
/core/parser/packrat/ch: OK
/core/parser/packrat/ch_range: OK
/core/parser/packrat/int64: OK
/core/parser/packrat/int32: OK
/core/parser/packrat/int16: OK
/core/parser/packrat/int8: OK
/core/parser/packrat/uint64: OK
/core/parser/packrat/uint32: OK
/core/parser/packrat/uint16: OK
/core/parser/packrat/uint8: OK
/core/parser/packrat/int_range: OK
/core/parser/packrat/whitespace: OK
/core/parser/packrat/left: OK
/core/parser/packrat/right: OK
/core/parser/packrat/middle: OK
/core/parser/packrat/action: OK
/core/parser/packrat/in: OK
/core/parser/packrat/not_in: OK
/core/parser/packrat/end_p: OK
/core/parser/packrat/nothing_p: OK
/core/parser/packrat/sequence: OK
/core/parser/packrat/choice: OK
/core/parser/packrat/butnot: OK
/core/parser/packrat/difference: OK
/core/parser/packrat/xor: OK
/core/parser/packrat/many: OK
/core/parser/packrat/many1: OK
/core/parser/packrat/repeat_n: OK
/core/parser/packrat/optional: OK
/core/parser/packrat/sepBy: OK
/core/parser/packrat/sepBy1: OK
/core/parser/packrat/epsilon_p: OK
/core/parser/packrat/attr_bool: OK
/core/parser/packrat/and: OK
/core/parser/packrat/not: OK
/core/parser/packrat/ignore: OK
/core/parser/packrat/leftrec-ne: OK
/core/parser/packrat/rightrec: OK
/core/parser/packrat/endianness: OK
/core/parser/packrat/putget: OK
/core/parser/packrat/permutation: OK
/core/parser/packrat/bind: OK
/core/parser/packrat/result_length: OK
/core/parser/llk/token: OK
/core/parser/llk/ch: OK
/core/parser/llk/ch_range: OK
/core/parser/llk/int64: OK
/core/parser/llk/int32: OK
/core/parser/llk/int16: OK
/core/parser/llk/int8: OK
/core/parser/llk/uint64: OK
/core/parser/llk/uint32: OK
/core/parser/llk/uint16: OK
/core/parser/llk/uint8: OK
/core/parser/llk/int_range: OK
/core/parser/llk/whitespace: OK
/core/parser/llk/left: OK
/core/parser/llk/right: OK
/core/parser/llk/middle: OK
/core/parser/llk/action: OK
/core/parser/llk/in: OK
/core/parser/llk/not_in: OK
/core/parser/llk/end_p: OK
/core/parser/llk/nothing_p: OK
/core/parser/llk/sequence: OK
/core/parser/llk/choice: OK
/core/parser/llk/many: OK
/core/parser/llk/many1: OK
/core/parser/llk/optional: OK
/core/parser/llk/sepBy: OK
/core/parser/llk/sepBy1: OK
/core/parser/llk/epsilon_p: OK
/core/parser/llk/attr_bool: OK
/core/parser/llk/ignore: OK
/core/parser/llk/rightrec: OK
/core/parser/llk/result_length: OK
/core/parser/llk/iterative: OK
/core/parser/llk/iterative/lookahead: OK
/core/parser/llk/iterative/result_length: OK
/core/parser/regex/token: OK
/core/parser/regex/ch: OK
/core/parser/regex/ch_range: OK
/core/parser/regex/int64: OK
/core/parser/regex/int32: OK
/core/parser/regex/int16: OK
/core/parser/regex/int8: OK
/core/parser/regex/uint64: OK
/core/parser/regex/uint32: OK
/core/parser/regex/uint16: OK
/core/parser/regex/uint8: OK
/core/parser/regex/whitespace: OK
/core/parser/regex/left: OK
/core/parser/regex/right: OK
/core/parser/regex/middle: OK
/core/parser/regex/action: OK
/core/parser/regex/in: OK
/core/parser/regex/not_in: OK
/core/parser/regex/end_p: OK
/core/parser/regex/nothing_p: OK
/core/parser/regex/sequence: OK
/core/parser/regex/choice: OK
/core/parser/regex/many: OK
/core/parser/regex/many1: OK
/core/parser/regex/repeat_n: OK
/core/parser/regex/optional: OK
/core/parser/regex/sepBy: OK
/core/parser/regex/sepBy1: OK
/core/parser/regex/epsilon_p: OK
/core/parser/regex/attr_bool: OK
/core/parser/regex/ignore: OK
/core/parser/regex/result_length: OK
/core/parser/regex/token_position: OK
/core/parser/lalr/token: OK
/core/parser/lalr/ch: OK
/core/parser/lalr/ch_range: OK
/core/parser/lalr/int64: OK
/core/parser/lalr/int32: OK
/core/parser/lalr/int16: OK
/core/parser/lalr/int8: OK
/core/parser/lalr/uint64: OK
/core/parser/lalr/uint32: OK
/core/parser/lalr/uint16: OK
/core/parser/lalr/uint8: OK
/core/parser/lalr/int_range: OK
/core/parser/lalr/whitespace: OK
/core/parser/lalr/left: OK
/core/parser/lalr/right: OK
/core/parser/lalr/middle: OK
/core/parser/lalr/action: OK
/core/parser/lalr/in: OK
/core/parser/lalr/not_in: OK
/core/parser/lalr/end_p: OK
/core/parser/lalr/nothing_p: OK
/core/parser/lalr/sequence: OK
/core/parser/lalr/choice: OK
/core/parser/lalr/many: OK
/core/parser/lalr/many1: OK
/core/parser/lalr/optional: OK
/core/parser/lalr/sepBy: OK
/core/parser/lalr/sepBy1: OK
/core/parser/lalr/epsilon_p: OK
/core/parser/lalr/attr_bool: OK
/core/parser/lalr/ignore: OK
/core/parser/lalr/leftrec: OK
/core/parser/lalr/leftrec-ne: OK
/core/parser/lalr/rightrec: OK
/core/parser/lalr/result_length: OK
/core/parser/lalr/token_position: OK
/core/parser/lalr/iterative: OK
/core/parser/lalr/iterative/lookahead: OK
/core/parser/lalr/iterative/result_length: OK
/core/parser/glr/token: OK
/core/parser/glr/ch: OK
/core/parser/glr/ch_range: OK
/core/parser/glr/int64: OK
/core/parser/glr/int32: OK
/core/parser/glr/int16: OK
/core/parser/glr/int8: OK
/core/parser/glr/uint64: OK
/core/parser/glr/uint32: OK
/core/parser/glr/uint16: OK
/core/parser/glr/uint8: OK
/core/parser/glr/int_range: OK
/core/parser/glr/whitespace: OK
/core/parser/glr/left: OK
/core/parser/glr/right: OK
/core/parser/glr/middle: OK
/core/parser/glr/action: OK
/core/parser/glr/in: OK
/core/parser/glr/not_in: OK
/core/parser/glr/end_p: OK
/core/parser/glr/nothing_p: OK
/core/parser/glr/sequence: OK
/core/parser/glr/choice: OK
/core/parser/glr/many: OK
/core/parser/glr/many1: OK
/core/parser/glr/optional: OK
/core/parser/glr/sepBy: OK
/core/parser/glr/sepBy1: OK
/core/parser/glr/epsilon_p: OK
/core/parser/glr/attr_bool: OK
/core/parser/glr/ignore: OK
/core/parser/glr/leftrec: OK
/core/parser/glr/leftrec-ne: OK
/core/parser/glr/rightrec: OK
/core/parser/glr/ambiguous: OK
/core/parser/glr/result_length: OK
/core/parser/glr/token_position: OK
/core/grammar/end: OK
/core/grammar/example_1: OK
/core/misc/tt_user: OK
/core/misc/tt_registry: OK
/core/misc/oom: OK
/core/regression/bug118: OK
/core/regression/seq_index_path: OK
/core/regression/read_bits_48: OK
/core/regression/llk_zero_end: OK
/core/regression/wrong_bit_length: OK
/core/regression/lalr_charset_lhs: OK
/core/regression/cfg_many_seq: OK
/core/regression/charset_bits: OK
perl build/opt/src/bindings/perl/Makefile.PL CC=gcc
Warning: -L../../ changed to -L/home/daxim/hack/hammer/build/opt/src/bindings/perl/../../
Generating a Unix-style Makefile
Writing Makefile for hammer
Writing MYMETA.yml and MYMETA.json
swig -DHAMMER_INTERNAL__NO_STDARG_H -Isrc/ -perl build/opt/src/bindings/perl/hammer.i
build/opt/src/bindings/perl/../swig/hammer.i:131: Warning 204: CPP #warning, "no uint8_t* typemaps defined".
build/opt/src/bindings/perl/../swig/hammer.i:151: Warning 303: %extend defined for an undeclared class HArena_.
src/hammer.h:185: Warning 451: Setting a const char * variable may leak memory.
make -C build/opt/src/bindings/perl
make: Entering directory '/home/daxim/hack/hammer/build/opt/src/bindings/perl'
Running Mkbootstrap for hammer ()
chmod 644 "hammer.bs"
"/home/daxim/local/share/perlbrew/perls/perl-5.24.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- hammer.bs blib/arch/auto/hammer/hammer.bs 644
gcc -c  -I../.. -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -DSWIG -DHAS_BOOL -std=gnu99 -O2 -g   -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC "-I/home/daxim/local/share/perlbrew/perls/perl-5.24.1/lib/5.24.1/x86_64-linux-thread-multi-ld/CORE"   hammer_wrap.c
hammer_wrap.c: In function 'attr_bool':
hammer_wrap.c:2426:32: warning: passing argument 2 of 'h_attr_bool' from incompatible pointer type [-Wincompatible-pointer-types]
     return h_attr_bool(parser, call_predicate, SvREFCNT_inc(sub));
                                ^~~~~~~~~~~~~~
In file included from hammer_wrap.c:1771:0:
../../hammer.h:618:26: note: expected 'HPredicate {aka _Bool (*)(struct HParseResult_ *, void *)}' but argument is of type 'int (*)(HParseResult *, void *) {aka int (*)(struct HParseResult_ *, void *)}'
 HAMMER_FN_DECL(HParser*, h_attr_bool, const HParser* p, HPredicate pred, void* user_data);
                          ^
../../hammer.h:223:11: note: in definition of macro 'HAMMER_FN_DECL'
   rtype_t name(__VA_ARGS__);    \
           ^~~~
rm -f blib/arch/auto/hammer/hammer.so
LD_RUN_PATH="/home/daxim/hack/hammer/build/opt/src/bindings/perl/../.." cc  -shared -O2 -g -L/usr/local/lib -fstack-protector hammer_wrap.o  -o blib/arch/auto/hammer/hammer.so  \
   -L/home/daxim/hack/hammer/build/opt/src/bindings/perl/../.. -lhammer   \

chmod 755 blib/arch/auto/hammer/hammer.so
make: Leaving directory '/home/daxim/hack/hammer/build/opt/src/bindings/perl'
make test -C build/opt/src/bindings/perl
make: Entering directory '/home/daxim/hack/hammer/build/opt/src/bindings/perl'
"/home/daxim/local/share/perlbrew/perls/perl-5.24.1/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- hammer.bs blib/arch/auto/hammer/hammer.bs 644
PERL_DL_NONLAZY=1 "/home/daxim/local/share/perlbrew/perls/perl-5.24.1/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/hammer.t .. ok
All tests successful.
Files=1, Tests=41,  0 wallclock secs ( 0.05 usr  0.01 sys +  0.11 cusr  0.02 csys =  0.19 CPU)
Result: PASS
make: Leaving directory '/home/daxim/hack/hammer/build/opt/src/bindings/perl'
scons: done building targets.