Remove -Wno-return-type-c-linkage option when using gcc

Only use this option when compiling with CLang which supports it.

Change-Id: I8555c16e82d61302f6a43672d0d63e5d4800c6b6
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 80d6f22..c66feca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -617,9 +617,14 @@
 # GCC is not strict enough by default, so enable most of the warnings.
 IF ("${UNIX}")
   SET(CMAKE_CXX_FLAGS
-      "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-return-type-c-linkage")
+      "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter")
 ENDIF ("${UNIX}")
 
+# We can be even stricter when using CLang
+IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-return-type-c-linkage")
+ENDIF()
+
 ADD_SUBDIRECTORY(internal/ceres)
 
 OPTION(BUILD_DOCUMENTATION