AliveToolkit / alive2

Automatic verification of LLVM optimizations
MIT License
778 stars 98 forks source link

-Werror causing build failure #779

Closed regehr closed 2 years ago

regehr commented 2 years ago

are others seeing this? this is latest alive2 and latest LLVM, compiling using g++ 11.2.0 which is the default system compiler on latest Ubuntu. I looked into it a bit and I don't see what needs fixing on the alive2 side.

FAILED: CMakeFiles/llvm_util.dir/llvm_util/llvm2alive.cpp.o 
/usr/bin/c++  -I../ -I. -I/home/regehr/llvm-project/llvm/include -I/home/regehr/llvm-project/for-alive/include -Wall -Werror -fPIC  -g -Og -g   -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -std=c++2a -MD -MT CMakeFiles/llvm_util.dir/llvm_util/llvm2alive.cpp.o -MF CMakeFiles/llvm_util.dir/llvm_util/llvm2alive.cpp.o.d -o CMakeFiles/llvm_util.dir/llvm_util/llvm2alive.cpp.o -c ../llvm_util/llvm2alive.cpp
In file included from /home/regehr/llvm-project/llvm/include/llvm/IR/InstrTypes.h:24,
                 from /home/regehr/llvm-project/llvm/include/llvm/IR/IRBuilderFolder.h:18,
                 from /home/regehr/llvm-project/llvm/include/llvm/Analysis/TargetFolder.h:24,
                 from /home/regehr/llvm-project/llvm/include/llvm/Analysis/MemoryBuiltins.h:20,
                 from ../llvm_util/llvm2alive.cpp:9:
In member function ‘bool llvm::Twine::isValid() const’,
    inlined from ‘llvm::Twine::Twine(const string&)’ at /home/regehr/llvm-project/llvm/include/llvm/ADT/Twine.h:287:7,
    inlined from ‘IR::Value* {anonymous}::llvm2alive_::convert_constexpr(llvm::ConstantExpr*)’ at ../llvm_util/llvm2alive.cpp:128:18:
/home/regehr/llvm-project/llvm/include/llvm/ADT/Twine.h:236:16: error: ‘<anonymous>.llvm::Twine::RHS.llvm::Twine::Child::twine’ may be used uninitialized [-Werror=maybe-uninitialized]
  236 |           !RHS.twine->isBinary())
      |            ~~~~^~~~~
../llvm_util/llvm2alive.cpp: In member function ‘IR::Value* {anonymous}::llvm2alive_::convert_constexpr(llvm::ConstantExpr*)’:
../llvm_util/llvm2alive.cpp:128:18: note: ‘<anonymous>’ declared here
  128 |     newI->setName("__constexpr_" + to_string(constexpr_idx++));
      |     ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.
nunoplopes commented 2 years ago

Ah, yes, you need this: https://github.com/AliveToolkit/alive2/blob/master/build_llvm_with_gcc.patch

regehr commented 2 years ago

ah, thanks -- closing