[all-commits] [llvm/llvm-project] d187ce: [OpenMP] Use CMAKE_CXX_STANDARD for setting the C+...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Tue May 16 00:44:19 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d187ceee3b400b8b235630c6cddf64bf517620c7
      https://github.com/llvm/llvm-project/commit/d187ceee3b400b8b235630c6cddf64bf517620c7
  Author: Martin Storsjö <martin at martin.st>
  Date:   2023-05-16 (Tue, 16 May 2023)

  Changed paths:
    M openmp/CMakeLists.txt
    M openmp/cmake/HandleOpenMPOptions.cmake
    M openmp/cmake/config-ix.cmake

  Log Message:
  -----------
  [OpenMP] Use CMAKE_CXX_STANDARD for setting the C++ version

Previously, we tried to check whether the -std=c++17 option was
supported and manually add the flag. That doesn't work for compilers
that do support C++17 but use a different option syntax, like
clang-cl.

OpenMP itself probably doesn't specifically require C++17, therefore
CXX_STANDARD_REQUIRED is left off, but in some cases, we may
have code that only works in C++17 mode.

In particular, 46262cab24312c71717ca70a9d0700481aa59152 made a
refactoring that works when built with Clang in C++17 mode, but not
in C++14 mode. MSVC accepts the construct in both language modes.

For libomptarget, we've had specific checks that require C++17
(or the -std=c++17 option) to be supported. It's doubtful that
libomptarget has got any code which more specifically requires C++17;
this seems to be a remnant from when libomptarget was added
originally in 2467df6e4f04e3d0e8e78d662473ba1b87c0a885 / D14031.
At that point, the rest of OpenMP didn't require C++11, while
libomptarget did require it. Now, it's unlikely that anyone attempts
building it with a toolchain that doesn't support C++11.

At this point, we could also probably just set CXX_STANDARD_REQUIRED
to true, requiring C++17 as baseline for all the OpenMP libraries.

This fixes building OpenMP with clang-cl after
46262cab24312c71717ca70a9d0700481aa59152.

Differential Revision: https://reviews.llvm.org/D149726




More information about the All-commits mailing list