Disable -Wcomment when building with GCC.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Tue, 6 May 2014 09:46:06 +0000 (09:46 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Tue, 6 May 2014 09:46:06 +0000 (09:46 +0000)
GCC version of -Wcomment is not compatible with ascii art graph diagrams.

Reverts r207629.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208073 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/HandleLLVMOptions.cmake
unittests/Analysis/LazyCallGraphTest.cpp

index d5afc626f9308178c77a263454cde7d2a8ecf646..5b332ac74dbae69ee23d4df9e9f2b8ad3e3b2f5c 100644 (file)
@@ -295,6 +295,17 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE )
     append_if(USE_NO_MAYBE_UNINITIALIZED "-Wno-maybe-uninitialized" CMAKE_CXX_FLAGS)
     check_cxx_compiler_flag("-Werror -Wnon-virtual-dtor" CXX_SUPPORTS_NON_VIRTUAL_DTOR_FLAG)
     append_if(CXX_SUPPORTS_NON_VIRTUAL_DTOR_FLAG "-Wnon-virtual-dtor" CMAKE_CXX_FLAGS)
+
+    # Check if -Wcomment is OK with an // comment ending with '\' if the next
+    # line is also a // comment.
+    set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+    set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} -Werror -Wcomment)
+    CHECK_C_SOURCE_COMPILES("// \\\\\\n//\\nint main() {return 0;}"
+                            C_WCOMMENT_ALLOWS_LINE_WRAP)
+    set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
+    if (NOT C_WCOMMENT_ALLOWS_LINE_WRAP)
+      append("-Wno-comment" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+    endif()
   endif (LLVM_ENABLE_WARNINGS)
   append_if(LLVM_ENABLE_WERROR "-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
   if (LLVM_ENABLE_CXX1Y)
index 8c7b567afc9a4d0a1dcf121ff6cf557e279f41fc..d7c70453c9b06052a51f74bd6915af97343d8270 100644 (file)
@@ -41,17 +41,17 @@ std::unique_ptr<Module> parseAssembly(const char *Assembly) {
 
 // IR forming a call graph with a diamond of triangle-shaped SCCs:
 //
-//         d1       |
-//        /  \      |
-//       d3--d2     |
-//      /     \     |
-//     b1     c1    |
-//   /  \    /  \   |
-//  b3--b2  c3--c2  |
-//       \  /       |
-//        a1        |
-//       /  \       |
-//      a3--a2      |
+//         d1
+//        /  \
+//       d3--d2
+//      /     \
+//     b1     c1
+//   /  \    /  \
+//  b3--b2  c3--c2
+//       \  /
+//        a1
+//       /  \
+//      a3--a2
 //
 // All call edges go up between SCCs, and clockwise around the SCC.
 static const char DiamondOfTriangles[] =