SGL-UT/gnsstk

Return type warning treated as error - compilation fails on Linux

coezmaden opened this issue · 1 comments

Due to the setting of -Werror=return-type in the compiler flags below:

set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror=return-type -Werror=deprecated" )

the project won't compile on my Linux using Cmake due to no return statement placed before the bracket here:

Here is the warning treated as error that gcc 7.5.0 issues:

[ 30%] Building CXX object CMakeFiles/gnsstk.dir/core/lib/GNSSCore/SatMetaDataStore.cpp.o
/home/coezmaden/Repositories/gnsstk/core/lib/GNSSCore/RefFrameRlz.cpp: In function ‘gnsstk::RefFrameRlz gnsstk::getRefFrameRlz(gnsstk::RefFrameSys, const gnsstk::CommonTime&)’:
/home/coezmaden/Repositories/gnsstk/core/lib/GNSSCore/RefFrameRlz.cpp:177:4: error: control reaches end of non-void function [-Werror=return-type]
    }
    ^

Can be a potential easy fix by adding a return of an unknown reference frame RefFrameRlz::Unknown as I have done in my fork: 3f332d5
Should be tested for unwanted changes to the logic of the function.

A fix for Linux users who just want to get on with their lives: Set an additional cmake flag -DCMAKE_CXX_FLAGS=\'-w\'.

Extract from the gcc man page:

-w
Inhibit all warning messages.