-
Notifications
You must be signed in to change notification settings - Fork 10
Closed
Milestone
Description
When building musica, several warnings are generated
[ 89%] Building CXX object src/CMakeFiles/musica.dir/util.cpp.o
In file included from /Users/kshores/Documents/musica/src/util.cpp:3:
/Users/kshores/Documents/musica/include/musica/util.hpp:45:12: warning: 'CreateString' has C-linkage specified, but returns user-defined type 'String' which is incompatible with C [-Wreturn-type-c-linkage]
String CreateString(const char* value);
^
/Users/kshores/Documents/musica/include/musica/util.hpp:53:11: warning: 'NoError' has C-linkage specified, but returns user-defined type 'Error' which is incompatible with C [-Wreturn-type-c-linkage]
Error NoError();
^
/Users/kshores/Documents/musica/include/musica/util.hpp:60:11: warning: 'ToError' has C-linkage specified, but returns user-defined type 'Error' which is incompatible with C [-Wreturn-type-c-linkage]
Error ToError(const char* category, int code, const char* message);
^
3 warnings generated.
[ 90%] Building CXX object src/CMakeFiles/musica.dir/component_versions.cpp.o
[ 90%] Building CXX object src/CMakeFiles/musica.dir/__/version.cpp.o
[ 91%] Building CXX object src/CMakeFiles/musica.dir/micm/micm.cpp.o
In file included from /Users/kshores/Documents/musica/src/micm/micm.cpp:7:
In file included from /Users/kshores/Documents/musica/include/musica/micm.hpp:8:
/Users/kshores/Documents/musica/include/musica/util.hpp:45:12: warning: 'CreateString' has C-linkage specified, but returns user-defined type 'String' which is incompatible with C [-Wreturn-type-c-linkage]
String CreateString(const char* value);
^
/Users/kshores/Documents/musica/include/musica/util.hpp:53:11: warning: 'NoError' has C-linkage specified, but returns user-defined type 'Error' which is incompatible with C [-Wreturn-type-c-linkage]
Error NoError();
^
/Users/kshores/Documents/musica/include/musica/util.hpp:60:11: warning: 'ToError' has C-linkage specified, but returns user-defined type 'Error' which is incompatible with C [-Wreturn-type-c-linkage]
Error ToError(const char* category, int code, const char* message);
^
In file included from /Users/kshores/Documents/musica/src/micm/micm.cpp:7:
/Users/kshores/Documents/musica/include/musica/micm.hpp:31:12: warning: 'get_micm_version' has C-linkage specified, but returns user-defined type 'String' which is incompatible with C [-Wreturn-type-c-linkage]
String get_micm_version(void);
^
/Users/kshores/Documents/musica/include/musica/micm.hpp:47:12: warning: 'GetSpeciesPropertyString' has C-linkage specified, but returns user-defined type 'String' which is incompatible with C [-Wreturn-type-c-linkage]
String GetSpeciesPropertyString(MICM *micm, const char *species_name, const char *property_name, Error *error);
^
5 warnings generated.
[ 92%] Building CXX object src/CMakeFiles/musica.dir/tuvx/tuvx.cpp.o
In file included from /Users/kshores/Documents/musica/src/tuvx/tuvx.cpp:6:
In file included from /Users/kshores/Documents/musica/include/musica/tuvx.hpp:8:
/Users/kshores/Documents/musica/include/musica/util.hpp:45:12: warning: 'CreateString' has C-linkage specified, but returns user-defined type 'String' which is incompatible with C [-Wreturn-type-c-linkage]
String CreateString(const char* value);
^
/Users/kshores/Documents/musica/include/musica/util.hpp:53:11: warning: 'NoError' has C-linkage specified, but returns user-defined type 'Error' which is incompatible with C [-Wreturn-type-c-linkage]
Error NoError();
^
/Users/kshores/Documents/musica/include/musica/util.hpp:60:11: warning: 'ToError' has C-linkage specified, but returns user-defined type 'Error' which is incompatible with C [-Wreturn-type-c-linkage]
Error ToError(const char* category, int code, const char* message);
^
3 warnings generated.
Acceptance criteria
-Wno-return-type-c-linkageis removed from the compile definitions- this would mean the warning is NOT silenced
- Also means rmeoving
musica/cmake/silence_warnings.cmake
Lines 1 to 21 in a7a02cd
function(silence_warnings target) set(clang_gnu_warnings -Wno-return-type-c-linkage ) set(msvc_warnings /wd4190 ) set(intel_llvm_warnings -Wno-return-type-c-linkage # Suppress the warning for Intel compilers ) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_options(${target} PRIVATE ${clang_gnu_warnings}) elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") target_compile_options(${target} PRIVATE ${msvc_warnings}) elseif (CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM") target_compile_options(${target} PRIVATE ${intel_llvm_warnings}) endif() endfunction()
Ideas
- The C functions return pointers, not stack objects
- Read more on this topic here
- The functions return void and accept a pointer to an object that must be filled in the function
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels