adobe / hyde

A front-end to Jekyll that parses C++ sources to produce and enforce out-of-line documentation
http://opensource.adobe.com/hyde/
MIT License
323 stars 41 forks source link

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

Open ArthurSonzogni opened 4 years ago

ArthurSonzogni commented 4 years ago

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

riemass commented 4 years ago

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.