From ac29b79cd9040fa26fdf83f9c61d87d495e0fef5 Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Tue, 12 May 2020 14:23:26 -0300 Subject: [PATCH] Do not try to feature test static_assert static_assert is required both by C++11 and C11; if we don't have a standard compliant compiler then compilation should fail, not be hacked like this. The C++ version of this definition is particularly preposterous; the C version is probably just covering up that the C code forget to include the `` header where the `static_assert` macro is defined. --- CMakeLists.txt | 13 ------------- cmake/test-static-assert.cpp | 34 ---------------------------------- 2 files changed, 47 deletions(-) delete mode 100644 cmake/test-static-assert.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e19881cb..95cf2bc6a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -545,19 +545,6 @@ else() endif() set(C_WARNINGS "-Waggregate-return -Wnested-externs -Wold-style-definition -Wstrict-prototypes") set(CXX_WARNINGS "-Wno-reorder -Wno-missing-field-initializers") - try_compile(STATIC_ASSERT_RES "${CMAKE_CURRENT_BINARY_DIR}/static-assert" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/test-static-assert.c" COMPILE_DEFINITIONS "-std=c11") - if(STATIC_ASSERT_RES) - set(STATIC_ASSERT_FLAG "") - else() - set(STATIC_ASSERT_FLAG "-Dstatic_assert=_Static_assert") - endif() - - try_compile(STATIC_ASSERT_CPP_RES "${CMAKE_CURRENT_BINARY_DIR}/static-assert" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/test-static-assert.cpp" COMPILE_DEFINITIONS "-std=c++14") - if(STATIC_ASSERT_CPP_RES) - set(STATIC_ASSERT_CPP_FLAG "") - else() - set(STATIC_ASSERT_CPP_FLAG "-Dstatic_assert=_Static_assert") - endif() option(COVERAGE "Enable profiling for test coverage report" 0) diff --git a/cmake/test-static-assert.cpp b/cmake/test-static-assert.cpp deleted file mode 100644 index 28a80a972..000000000 --- a/cmake/test-static-assert.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2014-2018, The Monero Project -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, are -// permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this list of -// conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright notice, this list -// of conditions and the following disclaimer in the documentation and/or other -// materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its contributors may be -// used to endorse or promote products derived from this software without specific -// prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#include - -static_assert(1, "FAIL"); -int main(int argc, char *argv[]) { - return 0; -}