| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #-------------------------------------------------------------------------------------------------------
- # Copyright (C) Microsoft. All rights reserved.
- # Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- #-------------------------------------------------------------------------------------------------------
- include(CheckCXXSourceCompiles)
- include(CheckCXXSourceRuns)
- if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
- # by default this is disabled for osx
- # enable temporarily
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
- -Werror"
- )
- endif()
- check_cxx_source_runs("
- #include <stdlib.h>
- #include <stdio.h>
- __attribute__((disable_tail_calls))
- int inc(int a) { return a + 1; }
- int main(int argc, char **argv) {
- printf(\"%d\", inc(argc + 1));
- exit(0);
- }" CLANG_HAS_DISABLE_TAIL_CALLS_CFG)
- if(CLANG_HAS_DISABLE_TAIL_CALLS_CFG STREQUAL 1)
- add_definitions(-DCLANG_HAS_DISABLE_TAIL_CALLS=1)
- set(CXX_DO_NOT_OPTIMIZE_SIBLING_CALLS "")
- else()
- set(CXX_DO_NOT_OPTIMIZE_SIBLING_CALLS "-fno-optimize-sibling-calls")
- endif()
- if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
- # by default this is disabled for osx
- # disable back
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
- -Wno-error"
- )
- endif()
|