hyde icon indicating copy to clipboard operation
hyde copied to clipboard

error: control reaches end of non-void function [-Werror=return-type]

Open ArthurSonzogni opened this issue 6 years ago • 1 comments

A build error happens:

/home/sonzogna/programmation/download/hyde/emitters/yaml_base_emitter.cpp: In function ‘hyde::json {anonymous}::yaml_to_json(const YAML::Node&)’:
/home/sonzogna/programmation/download/hyde/emitters/yaml_base_emitter.cpp:90:1: error: control reaches end of non-void function [-Werror=return-type]

Compiler:

Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 

cmake version 3.16.20200103-g19c2763

OS:

lsb_release -a
LSB Version:	core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.3 LTS
Release:	18.04

Screenshots asciicast

ArthurSonzogni avatar Jan 05 '20 13:01 ArthurSonzogni

I have the same issue, using clang-9 on Manjaro Linux. After some playing around, I made it compile. There are two issues with this, that are easy to fix.

When using switch statements in the code, a value is returned only inside matched cases. Since no return statement follows the switch block, and no default is defined in the switch, the compiler detects that it can exit from the function with no error. I solved it by adding returns and throws to 3-4 switches.

However, I'm more concerned about the second issue. Since -Werror=comment is turned on, the compiler complained about a multi-line comment from a header that belongs to LLVM. I edited the header for now but I believe this should be enabled in the CMakeLists.txt.

riemass avatar Jan 13 '20 13:01 riemass