Try to compile verve on Fedora 23 x86_64, with clang-3.7.0-4.fc23.x86_64, got the following errors:
$ git rev-parse HEAD
a4c8e5634f83bf8ef6e6ddd550f29249e0f8551b
$ make
sysctl: cannot stat /proc/sys/hw/ncpu: No such file or directory
clang++ -g -O0 -Wall -Wextra -std=c++11 -I . -c bytecode/disassembler.cc -o .build/./bytecode/disassembler.cc.o
In file included from bytecode/disassembler.cc:6:
In file included from bytecode/disassembler.h:4:
bytecode/opcodes.h:47:8: error: unknown type name '__unused'
EVAL(ENUM(Type, MAP_2(FIRST_WITH_COMMA, OPCODES)));
^
./utils/macros.h:55:19: note: expanded from macro 'ENUM'
#define ENUM(...) ENUM_COMMON(, __VA_ARGS__)
^
./utils/macros.h:49:3: note: expanded from macro 'ENUM_COMMON'
__unused static const char *typeName(__name t) { \
^
./utils/macros.h:4:28: note: expanded from macro 'EVAL'
#define EVAL(...) EVAL1024(__VA_ARGS__)
^
note: (skipping 2044 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
./utils/macros.h:14:32: note: expanded from macro 'EVAL2'
#define EVAL2(...) EVAL1(EVAL1(__VA_ARGS__))
^
./utils/macros.h:15:20: note: expanded from macro 'EVAL1'
#define EVAL1(...) __VA_ARGS__
^
./utils/macros.h:15:20: note: expanded from macro 'EVAL1'
In file included from bytecode/disassembler.cc:6:
In file included from bytecode/disassembler.h:4:
bytecode/opcodes.h:47:8: error: expected member name or ';' after declaration specifiers
EVAL(ENUM(Type, MAP_2(FIRST_WITH_COMMA, OPCODES)));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./utils/macros.h:55:19: note: expanded from macro 'ENUM'
#define ENUM(...) ENUM_COMMON(, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~
./utils/macros.h:49:12: note: expanded from macro 'ENUM_COMMON'
__unused static const char *typeName(__name t) { \
~~~~~~~~ ^
./utils/macros.h:4:28: note: expanded from macro 'EVAL'
#define EVAL(...) EVAL1024(__VA_ARGS__)
^
note: (skipping 2044 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
./utils/macros.h:14:32: note: expanded from macro 'EVAL2'
#define EVAL2(...) EVAL1(EVAL1(__VA_ARGS__))
^
./utils/macros.h:15:20: note: expanded from macro 'EVAL1'
#define EVAL1(...) __VA_ARGS__
^
./utils/macros.h:15:20: note: expanded from macro 'EVAL1'
#define EVAL1(...) __VA_ARGS__
^
In file included from bytecode/disassembler.cc:6:
In file included from bytecode/disassembler.h:5:
bytecode/sections.h:9:3: error: unknown type name '__unused'
ENUM(Type,
^
./utils/macros.h:55:19: note: expanded from macro 'ENUM'
#define ENUM(...) ENUM_COMMON(, __VA_ARGS__)
^
./utils/macros.h:49:3: note: expanded from macro 'ENUM_COMMON'
__unused static const char *typeName(__name t) { \
^
In file included from bytecode/disassembler.cc:6:
In file included from bytecode/disassembler.h:5:
bytecode/sections.h:9:3: error: expected member name or ';' after declaration specifiers
ENUM(Type,
^~~~~~~~~~
./utils/macros.h:55:19: note: expanded from macro 'ENUM'
#define ENUM(...) ENUM_COMMON(, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~
./utils/macros.h:49:12: note: expanded from macro 'ENUM_COMMON'
__unused static const char *typeName(__name t) { \
~~~~~~~~ ^
bytecode/disassembler.cc:259:28: error: no member named 'typeName' in 'Verve::Opcode'
write() << Opcode::typeName(static_cast<Opcode::Type>(opcode));
~~~~~~~~^
5 errors generated.
Makefile:25: recipe for target '.build/./bytecode/disassembler.cc.o' failed
make: *** [.build/./bytecode/disassembler.cc.o] Error 1
Try to compile verve on Fedora 23 x86_64, with clang-3.7.0-4.fc23.x86_64, got the following errors: