symqemu icon indicating copy to clipboard operation
symqemu copied to clipboard

build failed

Open p870613 opened this issue 3 years ago • 2 comments

hi, l wanted to build symcc but met some troubles. Here is my error message.

[1/8] Performing configure step for 'SymRuntime'
FAILED: SymRuntime-prefix/src/SymRuntime-stamp/SymRuntime-configure 
cd /home/lin/Desktop/symqemu/symcc/build/SymRuntime-prefix/src/SymRuntime-build && /usr/bin/cmake -DCMAKE_C_COMPILER=/usr/bin/cc -DCMAKE_C_FLAGS= -DCMAKE_CXX_COMPILER=/usr/bin/c++ -DCMAKE_CXX_FLAGS= -DCMAKE_SHARED_LINKER_FLAGS= -DQSYM_BACKEND=ON -DCMAKE_BUILD_TYPE= -DZ3_TRUST_SYSTEM_VERSION= -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF -DZ3_DIR= -DLLVM_DIR=/usr/lib/llvm-6.0/cmake -GNinja /home/lin/Desktop/symqemu/symcc/runtime && /usr/bin/cmake -E touch /home/lin/Desktop/symqemu/symcc/build/SymRuntime-prefix/src/SymRuntime-stamp/SymRuntime-configure
-- Could NOT find Z3 (missing: Z3_DIR)
CMake Error at qsym_backend/CMakeLists.txt:45 (message):
  Couldn't locate Z3.  If you want me to trust that a suitable version is
  available nonetheless, configure CMake with -DZ3_TRUST_SYSTEM_VERSION=on
  (see also docs/Configuration.txt).


-- Configuring incomplete, errors occurred!
See also "/home/lin/Desktop/symqemu/symcc/build/SymRuntime-prefix/src/SymRuntime-build/CMakeFiles/CMakeOutput.log".
[2/8] Building CXX object CMakeFiles/Symbolize.dir/compiler/Runtime.cpp.o
FAILED: CMakeFiles/Symbolize.dir/compiler/Runtime.cpp.o 
/usr/bin/c++  -DSymbolize_EXPORTS -isystem /usr/lib/llvm-6.0/include -std=c++17 -Wredundant-decls -Wcast-align -Wmissing-include-dirs -Wswitch-default -Wextra -Wall -Winvalid-pch -Wredundant-decls -Wformat=2 -Wmissing-format-attribute -Wformat-nonliteral -Werror -fPIC   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT CMakeFiles/Symbolize.dir/compiler/Runtime.cpp.o -MF CMakeFiles/Symbolize.dir/compiler/Runtime.cpp.o.d -o CMakeFiles/Symbolize.dir/compiler/Runtime.cpp.o -c ../compiler/Runtime.cpp
In file included from ../compiler/Runtime.cpp:15:0:
../compiler/Runtime.h:24:24: error: ‘FunctionCallee’ in namespace ‘llvm’ does not name a type
   using SymFnT = llvm::FunctionCallee;
                        ^~~~~~~~~~~~~~
../compiler/Runtime.h:31:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInteger{};
   ^~~~~~
../compiler/Runtime.h:32:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInteger128{};
   ^~~~~~
../compiler/Runtime.h:33:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloat{};
   ^~~~~~
../compiler/Runtime.h:34:3: error: ‘SymFnT’ does not name a type
   SymFnT buildNullPointer{};
   ^~~~~~
../compiler/Runtime.h:35:3: error: ‘SymFnT’ does not name a type
   SymFnT buildTrue{};
   ^~~~~~
../compiler/Runtime.h:36:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFalse{};
   ^~~~~~
../compiler/Runtime.h:37:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBool{};
   ^~~~~~
../compiler/Runtime.h:38:3: error: ‘SymFnT’ does not name a type
   SymFnT buildSExt{};
   ^~~~~~
../compiler/Runtime.h:39:3: error: ‘SymFnT’ does not name a type
   SymFnT buildZExt{};
   ^~~~~~
../compiler/Runtime.h:40:3: error: ‘SymFnT’ does not name a type
   SymFnT buildTrunc{};
   ^~~~~~
../compiler/Runtime.h:41:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBswap{};
   ^~~~~~
../compiler/Runtime.h:42:3: error: ‘SymFnT’ does not name a type
   SymFnT buildIntToFloat{};
   ^~~~~~
../compiler/Runtime.h:43:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToFloat{};
   ^~~~~~
../compiler/Runtime.h:44:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBitsToFloat{};
   ^~~~~~
../compiler/Runtime.h:45:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToBits{};
   ^~~~~~
../compiler/Runtime.h:46:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToSignedInt{};
   ^~~~~~
../compiler/Runtime.h:47:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToUnsignedInt{};
   ^~~~~~
../compiler/Runtime.h:48:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatAbs{};
   ^~~~~~
../compiler/Runtime.h:49:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolAnd{};
   ^~~~~~
../compiler/Runtime.h:50:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolOr{};
   ^~~~~~
../compiler/Runtime.h:51:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolXor{};
   ^~~~~~
../compiler/Runtime.h:52:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolToBits{};
   ^~~~~~
../compiler/Runtime.h:53:3: error: ‘SymFnT’ does not name a type
   SymFnT pushPathConstraint{};
   ^~~~~~
../compiler/Runtime.h:54:3: error: ‘SymFnT’ does not name a type
   SymFnT getParameterExpression{};
   ^~~~~~
../compiler/Runtime.h:55:3: error: ‘SymFnT’ does not name a type
   SymFnT setParameterExpression{};
   ^~~~~~
../compiler/Runtime.h:56:3: error: ‘SymFnT’ does not name a type
   SymFnT setReturnExpression{};
   ^~~~~~
../compiler/Runtime.h:57:3: error: ‘SymFnT’ does not name a type
   SymFnT getReturnExpression{};
   ^~~~~~
../compiler/Runtime.h:58:3: error: ‘SymFnT’ does not name a type
   SymFnT memcpy{};
   ^~~~~~
../compiler/Runtime.h:59:3: error: ‘SymFnT’ does not name a type
   SymFnT memset{};
   ^~~~~~
../compiler/Runtime.h:60:3: error: ‘SymFnT’ does not name a type
   SymFnT memmove{};
   ^~~~~~
../compiler/Runtime.h:61:3: error: ‘SymFnT’ does not name a type
   SymFnT readMemory{};
   ^~~~~~
../compiler/Runtime.h:62:3: error: ‘SymFnT’ does not name a type
   SymFnT writeMemory{};
   ^~~~~~
../compiler/Runtime.h:63:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInsert{};
   ^~~~~~
../compiler/Runtime.h:64:3: error: ‘SymFnT’ does not name a type
   SymFnT buildExtract{};
   ^~~~~~
../compiler/Runtime.h:65:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyCall{};
   ^~~~~~
../compiler/Runtime.h:66:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyRet{};
   ^~~~~~
../compiler/Runtime.h:67:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyBasicBlock{};
   ^~~~~~
../compiler/Runtime.h:71:14: error: ‘SymFnT’ was not declared in this scope
   std::array<SymFnT, llvm::CmpInst::BAD_ICMP_PREDICATE>
              ^~~~~~
../compiler/Runtime.h:71:55: error: template argument 1 is invalid
   std::array<SymFnT, llvm::CmpInst::BAD_ICMP_PREDICATE>
                                                       ^
../compiler/Runtime.h:76:14: error: ‘SymFnT’ was not declared in this scope
   std::array<SymFnT, llvm::Instruction::BinaryOpsEnd>
              ^~~~~~
../compiler/Runtime.h:76:53: error: template argument 1 is invalid
   std::array<SymFnT, llvm::Instruction::BinaryOpsEnd>
                                                     ^
../compiler/Runtime.cpp:26:1: error: ‘SymFnT’ does not name a type
 SymFnT import(llvm::Module &M, llvm::StringRef name, llvm::Type *ret,
 ^~~~~~
../compiler/Runtime.cpp: In constructor ‘Runtime::Runtime(llvm::Module&)’:
../compiler/Runtime.cpp:44:3: error: ‘buildInteger’ was not declared in this scope
   buildInteger = import(M, "_sym_build_integer", ptrT, IRB.getInt64Ty(), int8T);
   ^~~~~~~~~~~~
../compiler/Runtime.cpp:44:18: error: ‘import’ was not declared in this scope
   buildInteger = import(M, "_sym_build_integer", ptrT, IRB.getInt64Ty(), int8T);
                  ^~~~~~
../compiler/Runtime.cpp:44:18: note: suggested alternative: ‘qsort’
   buildInteger = import(M, "_sym_build_integer", ptrT, IRB.getInt64Ty(), int8T);
                  ^~~~~~
                  qsort
../compiler/Runtime.cpp:45:3: error: ‘buildInteger128’ was not declared in this scope
   buildInteger128 = import(M, "_sym_build_integer128", ptrT, IRB.getInt64Ty(),
   ^~~~~~~~~~~~~~~
../compiler/Runtime.cpp:47:3: error: ‘buildFloat’ was not declared in this scope
   buildFloat =
   ^~~~~~~~~~
../compiler/Runtime.cpp:49:3: error: ‘buildNullPointer’ was not declared in this scope
   buildNullPointer = import(M, "_sym_build_null_pointer", ptrT);
   ^~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:49:3: note: suggested alternative: ‘__builtin_eh_pointer’
   buildNullPointer = import(M, "_sym_build_null_pointer", ptrT);
   ^~~~~~~~~~~~~~~~
   __builtin_eh_pointer
../compiler/Runtime.cpp:50:3: error: ‘buildTrue’ was not declared in this scope
   buildTrue = import(M, "_sym_build_true", ptrT);
   ^~~~~~~~~
../compiler/Runtime.cpp:51:3: error: ‘buildFalse’ was not declared in this scope
   buildFalse = import(M, "_sym_build_false", ptrT);
   ^~~~~~~~~~
../compiler/Runtime.cpp:51:3: note: suggested alternative: ‘duplocale’
   buildFalse = import(M, "_sym_build_false", ptrT);
   ^~~~~~~~~~
   duplocale
../compiler/Runtime.cpp:52:3: error: ‘buildBool’ was not declared in this scope
   buildBool = import(M, "_sym_build_bool", ptrT, IRB.getInt1Ty());
   ^~~~~~~~~
../compiler/Runtime.cpp:53:3: error: ‘buildSExt’ was not declared in this scope
   buildSExt = import(M, "_sym_build_sext", ptrT, ptrT, int8T);
   ^~~~~~~~~
../compiler/Runtime.cpp:54:3: error: ‘buildZExt’ was not declared in this scope
   buildZExt = import(M, "_sym_build_zext", ptrT, ptrT, int8T);
   ^~~~~~~~~
../compiler/Runtime.cpp:55:3: error: ‘buildTrunc’ was not declared in this scope
   buildTrunc = import(M, "_sym_build_trunc", ptrT, ptrT, int8T);
   ^~~~~~~~~~
../compiler/Runtime.cpp:56:3: error: ‘buildBswap’ was not declared in this scope
   buildBswap = import(M, "_sym_build_bswap", ptrT, ptrT);
   ^~~~~~~~~~
../compiler/Runtime.cpp:57:3: error: ‘buildIntToFloat’ was not declared in this scope
   buildIntToFloat = import(M, "_sym_build_int_to_float", ptrT, ptrT,
   ^~~~~~~~~~~~~~~
../compiler/Runtime.cpp:59:3: error: ‘buildFloatToFloat’ was not declared in this scope
   buildFloatToFloat =
   ^~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:61:3: error: ‘buildBitsToFloat’ was not declared in this scope
   buildBitsToFloat =
   ^~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:63:3: error: ‘buildFloatToBits’ was not declared in this scope
   buildFloatToBits = import(M, "_sym_build_float_to_bits", ptrT, ptrT);
   ^~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:64:3: error: ‘buildFloatToSignedInt’ was not declared in this scope
   buildFloatToSignedInt =
   ^~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:66:3: error: ‘buildFloatToUnsignedInt’ was not declared in this scope
   buildFloatToUnsignedInt =
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:68:3: error: ‘buildFloatAbs’ was not declared in this scope
   buildFloatAbs = import(M, "_sym_build_fp_abs", ptrT, ptrT);
   ^~~~~~~~~~~~~
../compiler/Runtime.cpp:69:3: error: ‘buildBoolAnd’ was not declared in this scope
   buildBoolAnd = import(M, "_sym_build_bool_and", ptrT, ptrT, ptrT);
   ^~~~~~~~~~~~
../compiler/Runtime.cpp:70:3: error: ‘buildBoolOr’ was not declared in this scope
   buildBoolOr = import(M, "_sym_build_bool_or", ptrT, ptrT, ptrT);
   ^~~~~~~~~~~
../compiler/Runtime.cpp:71:3: error: ‘buildBoolXor’ was not declared in this scope
   buildBoolXor = import(M, "_sym_build_bool_xor", ptrT, ptrT, ptrT);
   ^~~~~~~~~~~~
../compiler/Runtime.cpp:72:3: error: ‘buildBoolToBits’ was not declared in this scope
   buildBoolToBits = import(M, "_sym_build_bool_to_bits", ptrT, ptrT, int8T);
   ^~~~~~~~~~~~~~~
../compiler/Runtime.cpp:73:3: error: ‘pushPathConstraint’ was not declared in this scope
   pushPathConstraint = import(M, "_sym_push_path_constraint", voidT, ptrT,
   ^~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:76:3: error: ‘setParameterExpression’ was not declared in this scope
   setParameterExpression =
   ^~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:78:3: error: ‘getParameterExpression’ was not declared in this scope
   getParameterExpression =
   ^~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:80:3: error: ‘setReturnExpression’ was not declared in this scope
   setReturnExpression = import(M, "_sym_set_return_expression", voidT, ptrT);
   ^~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:81:3: error: ‘getReturnExpression’ was not declared in this scope
   getReturnExpression = import(M, "_sym_get_return_expression", ptrT);
   ^~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:87:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(Add, add)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:88:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(Sub, sub)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:89:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(Mul, mul)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:90:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(UDiv, unsigned_div)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:91:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(SDiv, signed_div)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:92:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(URem, unsigned_rem)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:93:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(SRem, signed_rem)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:94:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(Shl, shift_left)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:95:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(LShr, logical_shift_right)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:96:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(AShr, arithmetic_shift_right)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:97:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(And, and)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:98:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(Or, or)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:99:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(Xor, xor)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:102:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(FAdd, fp_add)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:103:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(FSub, fp_sub)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:104:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(FMul, fp_mul)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:105:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(FDiv, fp_div)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:84:47: error: invalid types ‘int[llvm::Instruction::BinaryOps]’ for array subscript
   binaryOperatorHandlers[Instruction::constant] =                              \
                                               ^
../compiler/Runtime.cpp:106:3: note: in expansion of macro ‘LOAD_BINARY_OPERATOR_HANDLER’
   LOAD_BINARY_OPERATOR_HANDLER(FRem, fp_rem)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:114:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_EQ, equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:115:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_NE, not_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:116:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_UGT, unsigned_greater_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:117:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_UGE, unsigned_greater_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:118:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_ULT, unsigned_less_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:119:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_ULE, unsigned_less_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:120:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_SGT, signed_greater_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:121:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_SGE, signed_greater_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:122:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_SLT, signed_less_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:123:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(ICMP_SLE, signed_less_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:126:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_OGT, float_ordered_greater_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:127:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_OGE, float_ordered_greater_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:128:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_OLT, float_ordered_less_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:129:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_OLE, float_ordered_less_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:130:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_OEQ, float_ordered_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:131:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_ONE, float_ordered_not_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:132:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_ORD, float_ordered)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:133:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_UNO, float_unordered)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:134:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_UGT, float_unordered_greater_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:135:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_UGE, float_unordered_greater_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:136:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_ULT, float_unordered_less_than)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:137:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_ULE, float_unordered_less_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:138:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_UEQ, float_unordered_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:111:39: error: invalid types ‘int[llvm::CmpInst::Predicate]’ for array subscript
   comparisonHandlers[CmpInst::constant] =                                      \
                                       ^
../compiler/Runtime.cpp:139:3: note: in expansion of macro ‘LOAD_COMPARISON_HANDLER’
   LOAD_COMPARISON_HANDLER(FCMP_UNE, float_unordered_not_equal)
   ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Runtime.cpp:146:3: error: ‘readMemory’ was not declared in this scope
   readMemory =
   ^~~~~~~~~~
../compiler/Runtime.cpp:148:3: error: ‘writeMemory’ was not declared in this scope
   writeMemory = import(M, "_sym_write_memory", voidT, intPtrType, intPtrType,
   ^~~~~~~~~~~
../compiler/Runtime.cpp:150:3: error: ‘buildInsert’ was not declared in this scope
   buildInsert =
   ^~~~~~~~~~~
../compiler/Runtime.cpp:150:3: note: suggested alternative: ‘__builtin_sqrt’
   buildInsert =
   ^~~~~~~~~~~
   __builtin_sqrt
../compiler/Runtime.cpp:152:3: error: ‘buildExtract’ was not declared in this scope
   buildExtract = import(M, "_sym_build_extract", ptrT, ptrT, IRB.getInt64Ty(),
   ^~~~~~~~~~~~
../compiler/Runtime.cpp:155:3: error: ‘notifyCall’ was not declared in this scope
   notifyCall = import(M, "_sym_notify_call", voidT, intPtrType);
   ^~~~~~~~~~
../compiler/Runtime.cpp:156:3: error: ‘notifyRet’ was not declared in this scope
   notifyRet = import(M, "_sym_notify_ret", voidT, intPtrType);
   ^~~~~~~~~
../compiler/Runtime.cpp:157:3: error: ‘notifyBasicBlock’ was not declared in this scope
   notifyBasicBlock = import(M, "_sym_notify_basic_block", voidT, intPtrType);
   ^~~~~~~~~~~~~~~~
[3/8] Building CXX object CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o
FAILED: CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o 
/usr/bin/c++  -DSymbolize_EXPORTS -isystem /usr/lib/llvm-6.0/include -std=c++17 -Wredundant-decls -Wcast-align -Wmissing-include-dirs -Wswitch-default -Wextra -Wall -Winvalid-pch -Wredundant-decls -Wformat=2 -Wmissing-format-attribute -Wformat-nonliteral -Werror -fPIC   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o -MF CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o.d -o CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o -c ../compiler/Symbolizer.cpp
In file included from ../compiler/Symbolizer.h:24:0,
                 from ../compiler/Symbolizer.cpp:15:
../compiler/Runtime.h:24:24: error: ‘FunctionCallee’ in namespace ‘llvm’ does not name a type
   using SymFnT = llvm::FunctionCallee;
                        ^~~~~~~~~~~~~~
../compiler/Runtime.h:31:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInteger{};
   ^~~~~~
../compiler/Runtime.h:32:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInteger128{};
   ^~~~~~
../compiler/Runtime.h:33:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloat{};
   ^~~~~~
../compiler/Runtime.h:34:3: error: ‘SymFnT’ does not name a type
   SymFnT buildNullPointer{};
   ^~~~~~
../compiler/Runtime.h:35:3: error: ‘SymFnT’ does not name a type
   SymFnT buildTrue{};
   ^~~~~~
../compiler/Runtime.h:36:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFalse{};
   ^~~~~~
../compiler/Runtime.h:37:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBool{};
   ^~~~~~
../compiler/Runtime.h:38:3: error: ‘SymFnT’ does not name a type
   SymFnT buildSExt{};
   ^~~~~~
../compiler/Runtime.h:39:3: error: ‘SymFnT’ does not name a type
   SymFnT buildZExt{};
   ^~~~~~
../compiler/Runtime.h:40:3: error: ‘SymFnT’ does not name a type
   SymFnT buildTrunc{};
   ^~~~~~
../compiler/Runtime.h:41:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBswap{};
   ^~~~~~
../compiler/Runtime.h:42:3: error: ‘SymFnT’ does not name a type
   SymFnT buildIntToFloat{};
   ^~~~~~
../compiler/Runtime.h:43:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToFloat{};
   ^~~~~~
../compiler/Runtime.h:44:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBitsToFloat{};
   ^~~~~~
../compiler/Runtime.h:45:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToBits{};
   ^~~~~~
../compiler/Runtime.h:46:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToSignedInt{};
   ^~~~~~
../compiler/Runtime.h:47:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToUnsignedInt{};
   ^~~~~~
../compiler/Runtime.h:48:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatAbs{};
   ^~~~~~
../compiler/Runtime.h:49:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolAnd{};
   ^~~~~~
../compiler/Runtime.h:50:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolOr{};
   ^~~~~~
../compiler/Runtime.h:51:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolXor{};
   ^~~~~~
../compiler/Runtime.h:52:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolToBits{};
   ^~~~~~
../compiler/Runtime.h:53:3: error: ‘SymFnT’ does not name a type
   SymFnT pushPathConstraint{};
   ^~~~~~
../compiler/Runtime.h:54:3: error: ‘SymFnT’ does not name a type
   SymFnT getParameterExpression{};
   ^~~~~~
../compiler/Runtime.h:55:3: error: ‘SymFnT’ does not name a type
   SymFnT setParameterExpression{};
   ^~~~~~
../compiler/Runtime.h:56:3: error: ‘SymFnT’ does not name a type
   SymFnT setReturnExpression{};
   ^~~~~~
../compiler/Runtime.h:57:3: error: ‘SymFnT’ does not name a type
   SymFnT getReturnExpression{};
   ^~~~~~
../compiler/Runtime.h:58:3: error: ‘SymFnT’ does not name a type
   SymFnT memcpy{};
   ^~~~~~
../compiler/Runtime.h:59:3: error: ‘SymFnT’ does not name a type
   SymFnT memset{};
   ^~~~~~
../compiler/Runtime.h:60:3: error: ‘SymFnT’ does not name a type
   SymFnT memmove{};
   ^~~~~~
../compiler/Runtime.h:61:3: error: ‘SymFnT’ does not name a type
   SymFnT readMemory{};
   ^~~~~~
../compiler/Runtime.h:62:3: error: ‘SymFnT’ does not name a type
   SymFnT writeMemory{};
   ^~~~~~
../compiler/Runtime.h:63:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInsert{};
   ^~~~~~
../compiler/Runtime.h:64:3: error: ‘SymFnT’ does not name a type
   SymFnT buildExtract{};
   ^~~~~~
../compiler/Runtime.h:65:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyCall{};
   ^~~~~~
../compiler/Runtime.h:66:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyRet{};
   ^~~~~~
../compiler/Runtime.h:67:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyBasicBlock{};
   ^~~~~~
../compiler/Runtime.h:71:14: error: ‘SymFnT’ was not declared in this scope
   std::array<SymFnT, llvm::CmpInst::BAD_ICMP_PREDICATE>
              ^~~~~~
../compiler/Runtime.h:71:55: error: template argument 1 is invalid
   std::array<SymFnT, llvm::CmpInst::BAD_ICMP_PREDICATE>
                                                       ^
../compiler/Runtime.h:76:14: error: ‘SymFnT’ was not declared in this scope
   std::array<SymFnT, llvm::Instruction::BinaryOpsEnd>
              ^~~~~~
../compiler/Runtime.h:76:53: error: template argument 1 is invalid
   std::array<SymFnT, llvm::Instruction::BinaryOpsEnd>
                                                     ^
In file included from ../compiler/Symbolizer.cpp:15:0:
../compiler/Symbolizer.h:97:28: error: ‘llvm::CallBase’ has not been declared
   void handleIntrinsicCall(llvm::CallBase &I);
                            ^~~~
../compiler/Symbolizer.h:99:27: error: ‘llvm::CallBase’ has not been declared
   void handleFunctionCall(llvm::CallBase &I, llvm::Instruction *returnPoint);
                           ^~~~
../compiler/Symbolizer.h:217:49: error: ‘SymFnT’ has not been declared
   forceBuildRuntimeCall(llvm::IRBuilder<> &IRB, SymFnT function,
                                                 ^~~~~~
../compiler/Symbolizer.h:230:44: error: ‘SymFnT’ has not been declared
   buildRuntimeCall(llvm::IRBuilder<> &IRB, SymFnT function,
                                            ^~~~~~
../compiler/Symbolizer.h:244:44: error: ‘SymFnT’ has not been declared
   buildRuntimeCall(llvm::IRBuilder<> &IRB, SymFnT function,
                                            ^~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::symbolizeFunctionArguments(llvm::Function&)’:
../compiler/Symbolizer.cpp:37:58: error: ‘const struct Runtime’ has no member named ‘getParameterExpression’
       symbolicExpressions[&arg] = IRB.CreateCall(runtime.getParameterExpression,
                                                          ^~~~~~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::insertBasicBlockNotification(llvm::BasicBlock&)’:
../compiler/Symbolizer.cpp:44:26: error: ‘const struct Runtime’ has no member named ‘notifyBasicBlock’
   IRB.CreateCall(runtime.notifyBasicBlock, getTargetPreferredInt(&B));
                          ^~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: At global scope:
../compiler/Symbolizer.cpp:179:38: error: variable or field ‘handleIntrinsicCall’ declared void
 void Symbolizer::handleIntrinsicCall(CallBase &I) {
                                      ^~~~~~~~
../compiler/Symbolizer.cpp:179:38: error: ‘CallBase’ was not declared in this scope
../compiler/Symbolizer.cpp:179:48: error: ‘I’ was not declared in this scope
 void Symbolizer::handleIntrinsicCall(CallBase &I) {
                                                ^
../compiler/Symbolizer.cpp:304:37: error: variable or field ‘handleFunctionCall’ declared void
 void Symbolizer::handleFunctionCall(CallBase &I, Instruction *returnPoint) {
                                     ^~~~~~~~
../compiler/Symbolizer.cpp:304:37: error: ‘CallBase’ was not declared in this scope
../compiler/Symbolizer.cpp:304:47: error: ‘I’ was not declared in this scope
 void Symbolizer::handleFunctionCall(CallBase &I, Instruction *returnPoint) {
                                               ^
../compiler/Symbolizer.cpp:304:62: error: expected primary-expression before ‘*’ token
 void Symbolizer::handleFunctionCall(CallBase &I, Instruction *returnPoint) {
                                                              ^
../compiler/Symbolizer.cpp:304:63: error: ‘returnPoint’ was not declared in this scope
 void Symbolizer::handleFunctionCall(CallBase &I, Instruction *returnPoint) {
                                                               ^~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitBinaryOperator(llvm::BinaryOperator&)’:
../compiler/Symbolizer.cpp:344:3: error: ‘SymFnT’ was not declared in this scope
   SymFnT handler = runtime.binaryOperatorHandlers.at(I.getOpcode());
   ^~~~~~
../compiler/Symbolizer.cpp:351:7: error: ‘handler’ was not declared in this scope
       handler = runtime.buildBoolAnd;
       ^~~~~~~
../compiler/Symbolizer.cpp:351:7: note: suggested alternative: ‘rand_r’
       handler = runtime.buildBoolAnd;
       ^~~~~~~
       rand_r
../compiler/Symbolizer.cpp:351:25: error: ‘const struct Runtime’ has no member named ‘buildBoolAnd’
       handler = runtime.buildBoolAnd;
                         ^~~~~~~~~~~~
../compiler/Symbolizer.cpp:354:25: error: ‘const struct Runtime’ has no member named ‘buildBoolOr’
       handler = runtime.buildBoolOr;
                         ^~~~~~~~~~~
../compiler/Symbolizer.cpp:357:25: error: ‘const struct Runtime’ has no member named ‘buildBoolXor’
       handler = runtime.buildBoolXor;
                         ^~~~~~~~~~~~
In file included from /usr/include/c++/7/cassert:44:0,
                 from /usr/include/llvm-6.0/llvm/Transforms/Utils/BasicBlockUtils.h:24,
                 from ../compiler/Symbolizer.cpp:22:
../compiler/Symbolizer.cpp:366:10: error: ‘handler’ was not declared in this scope
   assert(handler && "Unable to handle binary operator");
          ^
../compiler/Symbolizer.cpp:366:10: note: suggested alternative: ‘rand_r’
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitSelectInst(llvm::SelectInst&)’:
../compiler/Symbolizer.cpp:378:52: error: ‘const struct Runtime’ has no member named ‘pushPathConstraint’
   auto runtimeCall = buildRuntimeCall(IRB, runtime.pushPathConstraint,
                                                    ^~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitCmpInst(llvm::CmpInst&)’:
../compiler/Symbolizer.cpp:390:3: error: ‘SymFnT’ was not declared in this scope
   SymFnT handler = runtime.comparisonHandlers.at(I.getPredicate());
   ^~~~~~
In file included from /usr/include/c++/7/cassert:44:0,
                 from /usr/include/llvm-6.0/llvm/Transforms/Utils/BasicBlockUtils.h:24,
                 from ../compiler/Symbolizer.cpp:22:
../compiler/Symbolizer.cpp:391:10: error: ‘handler’ was not declared in this scope
   assert(handler && "Unable to handle icmp/fcmp variant");
          ^
../compiler/Symbolizer.cpp:391:10: note: suggested alternative: ‘rand_r’
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitReturnInst(llvm::ReturnInst&)’:
../compiler/Symbolizer.cpp:408:26: error: ‘const struct Runtime’ has no member named ‘setReturnExpression’
   IRB.CreateCall(runtime.setReturnExpression,
                          ^~~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitBranchInst(llvm::BranchInst&)’:
../compiler/Symbolizer.cpp:421:52: error: ‘const struct Runtime’ has no member named ‘pushPathConstraint’
   auto runtimeCall = buildRuntimeCall(IRB, runtime.pushPathConstraint,
                                                    ^~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitCallInst(llvm::CallInst&)’:
../compiler/Symbolizer.cpp:437:42: error: no matching function for call to ‘Symbolizer::handleFunctionCall(llvm::CallInst&, llvm::Instruction*)’
     handleFunctionCall(I, I.getNextNode());
                                          ^
In file included from ../compiler/Symbolizer.cpp:15:0:
../compiler/Symbolizer.h:99:8: note: candidate: void Symbolizer::handleFunctionCall(int&, llvm::Instruction*)
   void handleFunctionCall(llvm::CallBase &I, llvm::Instruction *returnPoint);
        ^~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.h:99:8: note:   no known conversion for argument 1 from ‘llvm::CallInst’ to ‘int&’
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitInvokeInst(llvm::InvokeInst&)’:
../compiler/Symbolizer.cpp:449:66: error: no matching function for call to ‘Symbolizer::handleFunctionCall(llvm::InvokeInst&, llvm::Instruction*)’
                             : I.getNormalDest()->getFirstNonPHI());
                                                                  ^
In file included from ../compiler/Symbolizer.cpp:15:0:
../compiler/Symbolizer.h:99:8: note: candidate: void Symbolizer::handleFunctionCall(int&, llvm::Instruction*)
   void handleFunctionCall(llvm::CallBase &I, llvm::Instruction *returnPoint);
        ^~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.h:99:8: note:   no known conversion for argument 1 from ‘llvm::InvokeInst’ to ‘int&’
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitLoadInst(llvm::LoadInst&)’:
../compiler/Symbolizer.cpp:465:15: error: ‘const struct Runtime’ has no member named ‘readMemory’
       runtime.readMemory,
               ^~~~~~~~~~
../compiler/Symbolizer.cpp:471:35: error: ‘const struct Runtime’ has no member named ‘buildBitsToFloat’
     data = IRB.CreateCall(runtime.buildBitsToFloat,
                                   ^~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitStoreInst(llvm::StoreInst&)’:
../compiler/Symbolizer.cpp:486:35: error: ‘const struct Runtime’ has no member named ‘buildFloatToBits’
     data = IRB.CreateCall(runtime.buildFloatToBits, data);
                                   ^~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp:490:15: error: ‘const struct Runtime’ has no member named ‘writeMemory’
       runtime.writeMemory,
               ^~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitGetElementPtrInst(llvm::GetElementPtrInst&)’:
../compiler/Symbolizer.cpp:560:26: error: ‘const struct Runtime’ has no member named ‘buildZExt’
             IRB, runtime.buildZExt,
                          ^~~~~~~~~
../compiler/Symbolizer.cpp:565:65: error: invalid types ‘const int[llvm::Instruction::BinaryOps]’ for array subscript
             IRB, runtime.binaryOperatorHandlers[Instruction::Mul],
                                                                 ^
../compiler/Symbolizer.cpp:570:65: error: invalid types ‘const int[llvm::Instruction::BinaryOps]’ for array subscript
             IRB, runtime.binaryOperatorHandlers[Instruction::Mul],
                                                                 ^
../compiler/Symbolizer.cpp:579:61: error: invalid types ‘const int[llvm::Instruction::BinaryOps]’ for array subscript
         IRB, runtime.binaryOperatorHandlers[Instruction::Add],
                                                             ^
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitBitCastInst(llvm::BitCastInst&)’:
../compiler/Symbolizer.cpp:592:39: error: ‘const struct Runtime’ has no member named ‘buildBitsToFloat’
         buildRuntimeCall(IRB, runtime.buildBitsToFloat,
                                       ^~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp:601:53: error: ‘const struct Runtime’ has no member named ‘buildFloatToBits’
     auto conversion = buildRuntimeCall(IRB, runtime.buildFloatToBits,
                                                     ^~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitTruncInst(llvm::TruncInst&)’:
../compiler/Symbolizer.cpp:616:20: error: ‘const struct Runtime’ has no member named ‘buildTrunc’
       IRB, runtime.buildTrunc,
                    ^~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitSIToFPInst(llvm::SIToFPInst&)’:
../compiler/Symbolizer.cpp:637:37: error: ‘const struct Runtime’ has no member named ‘buildIntToFloat’
       buildRuntimeCall(IRB, runtime.buildIntToFloat,
                                     ^~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitUIToFPInst(llvm::UIToFPInst&)’:
../compiler/Symbolizer.cpp:647:37: error: ‘const struct Runtime’ has no member named ‘buildIntToFloat’
       buildRuntimeCall(IRB, runtime.buildIntToFloat,
                                     ^~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitFPExtInst(llvm::FPExtInst&)’:
../compiler/Symbolizer.cpp:657:37: error: ‘const struct Runtime’ has no member named ‘buildFloatToFloat’
       buildRuntimeCall(IRB, runtime.buildFloatToFloat,
                                     ^~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitFPTruncInst(llvm::FPTruncInst&)’:
../compiler/Symbolizer.cpp:666:37: error: ‘const struct Runtime’ has no member named ‘buildFloatToFloat’
       buildRuntimeCall(IRB, runtime.buildFloatToFloat,
                                     ^~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitFPToSI(llvm::FPToSIInst&)’:
../compiler/Symbolizer.cpp:675:20: error: ‘const struct Runtime’ has no member named ‘buildFloatToSignedInt’
       IRB, runtime.buildFloatToSignedInt,
                    ^~~~~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitFPToUI(llvm::FPToUIInst&)’:
../compiler/Symbolizer.cpp:684:20: error: ‘const struct Runtime’ has no member named ‘buildFloatToUnsignedInt’
       IRB, runtime.buildFloatToUnsignedInt,
                    ^~~~~~~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitCastInst(llvm::CastInst&)’:
../compiler/Symbolizer.cpp:705:22: error: ‘const struct Runtime’ has no member named ‘buildBoolToBits’
         IRB, runtime.buildBoolToBits,
                      ^~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp:710:5: error: ‘SymFnT’ was not declared in this scope
     SymFnT target;
     ^~~~~~
../compiler/Symbolizer.cpp:714:7: error: ‘target’ was not declared in this scope
       target = runtime.buildSExt;
       ^~~~~~
../compiler/Symbolizer.cpp:714:7: note: suggested alternative: ‘tzset’
       target = runtime.buildSExt;
       ^~~~~~
       tzset
../compiler/Symbolizer.cpp:714:24: error: ‘const struct Runtime’ has no member named ‘buildSExt’
       target = runtime.buildSExt;
                        ^~~~~~~~~
../compiler/Symbolizer.cpp:717:24: error: ‘const struct Runtime’ has no member named ‘buildZExt’
       target = runtime.buildZExt;
                        ^~~~~~~~~
../compiler/Symbolizer.cpp:724:31: error: ‘target’ was not declared in this scope
         buildRuntimeCall(IRB, target,
                               ^~~~~~
../compiler/Symbolizer.cpp:724:31: note: suggested alternative: ‘tzset’
         buildRuntimeCall(IRB, target,
                               ^~~~~~
                               tzset
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitInsertValueInst(llvm::InsertValueInst&)’:
../compiler/Symbolizer.cpp:755:20: error: ‘const struct Runtime’ has no member named ‘buildInsert’
       IRB, runtime.buildInsert,
                    ^~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitExtractValueInst(llvm::ExtractValueInst&)’:
../compiler/Symbolizer.cpp:768:20: error: ‘const struct Runtime’ has no member named ‘buildExtract’
       IRB, runtime.buildExtract,
                    ^~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::visitSwitchInst(llvm::SwitchInst&)’:
../compiler/Symbolizer.cpp:800:52: error: invalid types ‘const int[llvm::CmpInst::Predicate]’ for array subscript
         runtime.comparisonHandlers[CmpInst::ICMP_EQ],
                                                    ^
../compiler/Symbolizer.cpp:802:28: error: ‘const struct Runtime’ has no member named ‘pushPathConstraint’
     IRB.CreateCall(runtime.pushPathConstraint,
                            ^~~~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp: In member function ‘llvm::CallInst* Symbolizer::createValueExpression(llvm::Value*, llvm::IRBuilder<>&)’:
../compiler/Symbolizer.cpp:825:35: error: ‘const struct Runtime’ has no member named ‘buildNullPointer’
     return IRB.CreateCall(runtime.buildNullPointer, {});
                                   ^~~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp:833:37: error: ‘const struct Runtime’ has no member named ‘buildBool’
       return IRB.CreateCall(runtime.buildBool, {V});
                                     ^~~~~~~~~
../compiler/Symbolizer.cpp:835:37: error: ‘const struct Runtime’ has no member named ‘buildInteger’
       return IRB.CreateCall(runtime.buildInteger,
                                     ^~~~~~~~~~~~
../compiler/Symbolizer.cpp:844:19: error: ‘const struct Runtime’ has no member named ‘buildInteger128’
           runtime.buildInteger128,
                   ^~~~~~~~~~~~~~~
../compiler/Symbolizer.cpp:852:35: error: ‘const struct Runtime’ has no member named ‘buildFloat’
     return IRB.CreateCall(runtime.buildFloat,
                                   ^~~~~~~~~~
../compiler/Symbolizer.cpp:859:17: error: ‘const struct Runtime’ has no member named ‘buildInteger’
         runtime.buildInteger,
                 ^~~~~~~~~~~~
../compiler/Symbolizer.cpp:879:17: error: ‘const struct Runtime’ has no member named ‘readMemory’
         runtime.readMemory,
                 ^~~~~~~~~~
../compiler/Symbolizer.cpp: At global scope:
../compiler/Symbolizer.cpp:890:53: error: ‘SymFnT’ has not been declared
 Symbolizer::forceBuildRuntimeCall(IRBuilder<> &IRB, SymFnT function,
                                                     ^~~~~~
../compiler/Symbolizer.cpp: In member function ‘Symbolizer::SymbolicComputation Symbolizer::forceBuildRuntimeCall(llvm::IRBuilder<>&, int, llvm::ArrayRef<std::pair<llvm::Value*, bool> >)’:
../compiler/Symbolizer.cpp:896:53: error: no matching function for call to ‘CreateCall(int&, std::vector<llvm::Value*, std::allocator<llvm::Value*> >&)’
   auto *call = IRB.CreateCall(function, functionArgs);
                                                     ^
In file included from ../compiler/Symbolizer.h:19:0,
                 from ../compiler/Symbolizer.cpp:15:
/usr/include/llvm-6.0/llvm/IR/IRBuilder.h:1663:13: note: candidate: llvm::CallInst* llvm::IRBuilder<T, Inserter>::CreateCall(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&, llvm::MDNode*) [with T = llvm::ConstantFolder; Inserter = llvm::IRBuilderDefaultInserter] <near match>
   CallInst *CreateCall(Value *Callee, ArrayRef<Value *> Args = None,
             ^~~~~~~~~~
/usr/include/llvm-6.0/llvm/IR/IRBuilder.h:1663:13: note:   conversion of argument 1 would be ill-formed:
../compiler/Symbolizer.cpp:896:53: error: invalid conversion from ‘int’ to ‘llvm::Value*’ [-fpermissive]
   auto *call = IRB.CreateCall(function, functionArgs);
                                                     ^
In file included from ../compiler/Symbolizer.h:19:0,
                 from ../compiler/Symbolizer.cpp:15:
/usr/include/llvm-6.0/llvm/IR/IRBuilder.h:1688:13: note: candidate: llvm::CallInst* llvm::IRBuilder<T, Inserter>::CreateCall(llvm::Function*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&, llvm::MDNode*) [with T = llvm::ConstantFolder; Inserter = llvm::IRBuilderDefaultInserter] <near match>
   CallInst *CreateCall(Function *Callee, ArrayRef<Value *> Args,
             ^~~~~~~~~~
/usr/include/llvm-6.0/llvm/IR/IRBuilder.h:1688:13: note:   conversion of argument 1 would be ill-formed:
../compiler/Symbolizer.cpp:896:53: error: invalid conversion from ‘int’ to ‘llvm::Function*’ [-fpermissive]
   auto *call = IRB.CreateCall(function, functionArgs);
                                                     ^
../compiler/Symbolizer.cpp:902:38: error: no matching function for call to ‘std::vector<Symbolizer::Input, std::allocator<Symbolizer::Input> >::push_back(<brace-enclosed initializer list>)’
       inputs.push_back({arg, i, call});
                                      ^
In file included from /usr/include/c++/7/vector:64:0,
                 from /usr/include/c++/7/functional:61,
                 from /usr/include/llvm-6.0/llvm/ADT/STLExtras.h:30,
                 from /usr/include/llvm-6.0/llvm/ADT/StringRef.h:13,
                 from /usr/include/llvm-6.0/llvm/ADT/Twine.h:14,
                 from /usr/include/llvm-6.0/llvm/IR/BasicBlock.h:18,
                 from ../compiler/Symbolizer.h:18,
                 from ../compiler/Symbolizer.cpp:15:
/usr/include/c++/7/bits/stl_vector.h:939:7: note: candidate: void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = Symbolizer::Input; _Alloc = std::allocator<Symbolizer::Input>; std::vector<_Tp, _Alloc>::value_type = Symbolizer::Input]
       push_back(const value_type& __x)
       ^~~~~~~~~
/usr/include/c++/7/bits/stl_vector.h:939:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const value_type& {aka const Symbolizer::Input&}’
/usr/include/c++/7/bits/stl_vector.h:953:7: note: candidate: void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = Symbolizer::Input; _Alloc = std::allocator<Symbolizer::Input>; std::vector<_Tp, _Alloc>::value_type = Symbolizer::Input]
       push_back(value_type&& __x)
       ^~~~~~~~~
/usr/include/c++/7/bits/stl_vector.h:953:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::vector<Symbolizer::Input, std::allocator<Symbolizer::Input> >::value_type&& {aka Symbolizer::Input&&}’
../compiler/Symbolizer.cpp: In member function ‘void Symbolizer::tryAlternative(llvm::IRBuilder<>&, llvm::Value*)’:
../compiler/Symbolizer.cpp:913:67: error: invalid types ‘const int[llvm::CmpInst::Predicate]’ for array subscript
         IRB.CreateCall(runtime.comparisonHandlers[CmpInst::ICMP_EQ],
                                                                   ^
../compiler/Symbolizer.cpp:916:17: error: ‘const struct Runtime’ has no member named ‘pushPathConstraint’
         runtime.pushPathConstraint,
                 ^~~~~~~~~~~~~~~~~~
[4/8] Building CXX object CMakeFiles/Symbolize.dir/compiler/Pass.cpp.o
FAILED: CMakeFiles/Symbolize.dir/compiler/Pass.cpp.o 
/usr/bin/c++  -DSymbolize_EXPORTS -isystem /usr/lib/llvm-6.0/include -std=c++17 -Wredundant-decls -Wcast-align -Wmissing-include-dirs -Wswitch-default -Wextra -Wall -Winvalid-pch -Wredundant-decls -Wformat=2 -Wmissing-format-attribute -Wformat-nonliteral -Werror -fPIC   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT CMakeFiles/Symbolize.dir/compiler/Pass.cpp.o -MF CMakeFiles/Symbolize.dir/compiler/Pass.cpp.o.d -o CMakeFiles/Symbolize.dir/compiler/Pass.cpp.o -c ../compiler/Pass.cpp
../compiler/Pass.cpp:29:0: error: "DEBUG" redefined [-Werror]
 #define DEBUG(X)                                                               \
 
In file included from /usr/include/llvm-6.0/llvm/IR/PassManager.h:48:0,
                 from /usr/include/llvm-6.0/llvm/IR/Verifier.h:25,
                 from ../compiler/Pass.cpp:20:
/usr/include/llvm-6.0/llvm/Support/Debug.h:118:0: note: this is the location of the previous definition
 #define DEBUG(X) DEBUG_WITH_TYPE(DEBUG_TYPE, X)
 
In file included from ../compiler/Pass.cpp:23:0:
../compiler/Runtime.h:24:24: error: ‘FunctionCallee’ in namespace ‘llvm’ does not name a type
   using SymFnT = llvm::FunctionCallee;
                        ^~~~~~~~~~~~~~
../compiler/Runtime.h:31:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInteger{};
   ^~~~~~
../compiler/Runtime.h:32:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInteger128{};
   ^~~~~~
../compiler/Runtime.h:33:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloat{};
   ^~~~~~
../compiler/Runtime.h:34:3: error: ‘SymFnT’ does not name a type
   SymFnT buildNullPointer{};
   ^~~~~~
../compiler/Runtime.h:35:3: error: ‘SymFnT’ does not name a type
   SymFnT buildTrue{};
   ^~~~~~
../compiler/Runtime.h:36:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFalse{};
   ^~~~~~
../compiler/Runtime.h:37:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBool{};
   ^~~~~~
../compiler/Runtime.h:38:3: error: ‘SymFnT’ does not name a type
   SymFnT buildSExt{};
   ^~~~~~
../compiler/Runtime.h:39:3: error: ‘SymFnT’ does not name a type
   SymFnT buildZExt{};
   ^~~~~~
../compiler/Runtime.h:40:3: error: ‘SymFnT’ does not name a type
   SymFnT buildTrunc{};
   ^~~~~~
../compiler/Runtime.h:41:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBswap{};
   ^~~~~~
../compiler/Runtime.h:42:3: error: ‘SymFnT’ does not name a type
   SymFnT buildIntToFloat{};
   ^~~~~~
../compiler/Runtime.h:43:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToFloat{};
   ^~~~~~
../compiler/Runtime.h:44:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBitsToFloat{};
   ^~~~~~
../compiler/Runtime.h:45:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToBits{};
   ^~~~~~
../compiler/Runtime.h:46:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToSignedInt{};
   ^~~~~~
../compiler/Runtime.h:47:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatToUnsignedInt{};
   ^~~~~~
../compiler/Runtime.h:48:3: error: ‘SymFnT’ does not name a type
   SymFnT buildFloatAbs{};
   ^~~~~~
../compiler/Runtime.h:49:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolAnd{};
   ^~~~~~
../compiler/Runtime.h:50:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolOr{};
   ^~~~~~
../compiler/Runtime.h:51:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolXor{};
   ^~~~~~
../compiler/Runtime.h:52:3: error: ‘SymFnT’ does not name a type
   SymFnT buildBoolToBits{};
   ^~~~~~
../compiler/Runtime.h:53:3: error: ‘SymFnT’ does not name a type
   SymFnT pushPathConstraint{};
   ^~~~~~
../compiler/Runtime.h:54:3: error: ‘SymFnT’ does not name a type
   SymFnT getParameterExpression{};
   ^~~~~~
../compiler/Runtime.h:55:3: error: ‘SymFnT’ does not name a type
   SymFnT setParameterExpression{};
   ^~~~~~
../compiler/Runtime.h:56:3: error: ‘SymFnT’ does not name a type
   SymFnT setReturnExpression{};
   ^~~~~~
../compiler/Runtime.h:57:3: error: ‘SymFnT’ does not name a type
   SymFnT getReturnExpression{};
   ^~~~~~
../compiler/Runtime.h:58:3: error: ‘SymFnT’ does not name a type
   SymFnT memcpy{};
   ^~~~~~
../compiler/Runtime.h:59:3: error: ‘SymFnT’ does not name a type
   SymFnT memset{};
   ^~~~~~
../compiler/Runtime.h:60:3: error: ‘SymFnT’ does not name a type
   SymFnT memmove{};
   ^~~~~~
../compiler/Runtime.h:61:3: error: ‘SymFnT’ does not name a type
   SymFnT readMemory{};
   ^~~~~~
../compiler/Runtime.h:62:3: error: ‘SymFnT’ does not name a type
   SymFnT writeMemory{};
   ^~~~~~
../compiler/Runtime.h:63:3: error: ‘SymFnT’ does not name a type
   SymFnT buildInsert{};
   ^~~~~~
../compiler/Runtime.h:64:3: error: ‘SymFnT’ does not name a type
   SymFnT buildExtract{};
   ^~~~~~
../compiler/Runtime.h:65:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyCall{};
   ^~~~~~
../compiler/Runtime.h:66:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyRet{};
   ^~~~~~
../compiler/Runtime.h:67:3: error: ‘SymFnT’ does not name a type
   SymFnT notifyBasicBlock{};
   ^~~~~~
../compiler/Runtime.h:71:14: error: ‘SymFnT’ was not declared in this scope
   std::array<SymFnT, llvm::CmpInst::BAD_ICMP_PREDICATE>
              ^~~~~~
../compiler/Runtime.h:71:55: error: template argument 1 is invalid
   std::array<SymFnT, llvm::CmpInst::BAD_ICMP_PREDICATE>
                                                       ^
../compiler/Runtime.h:76:14: error: ‘SymFnT’ was not declared in this scope
   std::array<SymFnT, llvm::Instruction::BinaryOpsEnd>
              ^~~~~~
../compiler/Runtime.h:76:53: error: template argument 1 is invalid
   std::array<SymFnT, llvm::Instruction::BinaryOpsEnd>
                                                     ^
In file included from ../compiler/Pass.cpp:24:0:
../compiler/Symbolizer.h:97:28: error: ‘llvm::CallBase’ has not been declared
   void handleIntrinsicCall(llvm::CallBase &I);
                            ^~~~
../compiler/Symbolizer.h:99:27: error: ‘llvm::CallBase’ has not been declared
   void handleFunctionCall(llvm::CallBase &I, llvm::Instruction *returnPoint);
                           ^~~~
../compiler/Symbolizer.h:217:49: error: ‘SymFnT’ has not been declared
   forceBuildRuntimeCall(llvm::IRBuilder<> &IRB, SymFnT function,
                                                 ^~~~~~
../compiler/Symbolizer.h:230:44: error: ‘SymFnT’ has not been declared
   buildRuntimeCall(llvm::IRBuilder<> &IRB, SymFnT function,
                                            ^~~~~~
../compiler/Symbolizer.h:244:44: error: ‘SymFnT’ has not been declared
   buildRuntimeCall(llvm::IRBuilder<> &IRB, SymFnT function,
                                            ^~~~~~
../compiler/Pass.cpp: In member function ‘virtual bool SymbolizePass::runOnFunction(llvm::Function&)’:
../compiler/Pass.cpp:68:29: error: ‘class llvm::Function’ has no member named ‘getInstructionCount’; did you mean ‘getEntryCount’?
   allInstructions.reserve(F.getInstructionCount());
                             ^~~~~~~~~~~~~~~~~~~
                             getEntryCount
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.

and here is my enviroment

gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
llvm-config --version: 9.0.0
clang version 9.0.0

Thanks !

p870613 avatar Jul 19 '21 14:07 p870613

It looks like you are missing Z3, did you follow the SymCC compilation/installation instructions or provided correct path? See SymCC Readme

aurelf avatar Jul 19 '21 15:07 aurelf

hi, l had already installed libz3-dev, but I have same issue. However, I compile the example code in z3 successfully.

And, here is error message.

➜  build git:(master) ✗ cmake -G Ninja -DQSYM_BACKEND=ON ..
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found LLVM 10.0.0
-- Using LLVMConfig.cmake from /usr/lib/llvm-10/cmake
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lin/Desktop/symqemu/symcc/build
➜  build git:(master) ✗ ninja                              
[6/13] Performing configure step for 'SymRuntime'
FAILED: SymRuntime-prefix/src/SymRuntime-stamp/SymRuntime-configure 
cd /home/lin/Desktop/symqemu/symcc/build/SymRuntime-prefix/src/SymRuntime-build && /usr/bin/cmake -DCMAKE_C_COMPILER=/usr/bin/cc -DCMAKE_C_FLAGS= -DCMAKE_CXX_COMPILER=/usr/bin/c++ -DCMAKE_CXX_FLAGS= -DCMAKE_SHARED_LINKER_FLAGS= -DQSYM_BACKEND=ON -DCMAKE_BUILD_TYPE= -DZ3_TRUST_SYSTEM_VERSION= -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF -DZ3_DIR= -DLLVM_DIR= -GNinja /home/lin/Desktop/symqemu/symcc/runtime && /usr/bin/cmake -E touch /home/lin/Desktop/symqemu/symcc/build/SymRuntime-prefix/src/SymRuntime-stamp/SymRuntime-configure
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find Z3 (missing: Z3_DIR)
CMake Error at qsym_backend/CMakeLists.txt:45 (message):
  Couldn't locate Z3.  If you want me to trust that a suitable version is
  available nonetheless, configure CMake with -DZ3_TRUST_SYSTEM_VERSION=on
  (see also docs/Configuration.txt).


-- Configuring incomplete, errors occurred!
See also "/home/lin/Desktop/symqemu/symcc/build/SymRuntime-prefix/src/SymRuntime-build/CMakeFiles/CMakeOutput.log".
[9/13] Building CXX object CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o
ninja: build stopped: subcommand failed.

Thanks !

p870613 avatar Jul 20 '21 14:07 p870613