set(CMake_C11_THREAD_LOCAL_BROKEN 0)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_C11_STANDARD_COMPILE_OPTION)
  if(NOT DEFINED CMake_C11_THREAD_LOCAL_WORKS)
    include(${CMAKE_CURRENT_LIST_DIR}/cm_message_checks_compat.cmake)
    cm_message_checks_compat(
      "Checking if compiler supports C11 _Thread_local"
      __checkStart __checkPass __checkFail)
    message(${__checkStart})
    try_compile(CMake_C11_THREAD_LOCAL_WORKS
      ${CMAKE_CURRENT_BINARY_DIR}
      ${CMAKE_CURRENT_LIST_DIR}/cm_c11_thread_local.c
      CMAKE_FLAGS -DCMAKE_C_STANDARD=11
      OUTPUT_VARIABLE OUTPUT
      )
    if(CMake_C11_THREAD_LOCAL_WORKS AND "${OUTPUT}" MATCHES "error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'")
      set_property(CACHE CMake_C11_THREAD_LOCAL_WORKS PROPERTY VALUE 0)
    endif()
    if(CMake_C11_THREAD_LOCAL_WORKS)
      message(${__checkPass} "yes")
      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
        "Determining if compiler supports C11 _Thread_local passed with the following output:\n"
        "${OUTPUT}\n"
        "\n"
        )
    else()
      message(${__checkFail} "no")
      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
        "Determining if compiler supports C11 _Thread_local failed with the following output:\n"
        "${OUTPUT}\n"
        "\n"
        )
    endif()
  endif()
  if(NOT CMake_C11_THREAD_LOCAL_WORKS)
    set(CMake_C11_THREAD_LOCAL_BROKEN 1)
  endif()
endif()
