From 1b5fd3e52a6a42e007dbd16f6c37f1ce3e1f1f30 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Tue, 6 May 2014 09:46:06 +0000 Subject: [PATCH] Disable -Wcomment when building with GCC. GCC version of -Wcomment is not compatible with ascii art graph diagrams. Reverts r207629. llvm-svn: 208073 --- llvm/cmake/modules/HandleLLVMOptions.cmake | 11 ++++++++++ llvm/unittests/Analysis/LazyCallGraphTest.cpp | 22 +++++++++---------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index d5afc626f930..5b332ac74dba 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -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) diff --git a/llvm/unittests/Analysis/LazyCallGraphTest.cpp b/llvm/unittests/Analysis/LazyCallGraphTest.cpp index 8c7b567afc9a..d7c70453c9b0 100644 --- a/llvm/unittests/Analysis/LazyCallGraphTest.cpp +++ b/llvm/unittests/Analysis/LazyCallGraphTest.cpp @@ -41,17 +41,17 @@ std::unique_ptr 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[] =