Skip to content

LLVM tools are not up to date in windows-latest image #10001

@mgovers

Description

@mgovers

Description

The latest Windows Server 2022 image with Visual Studio build tools

** Visual Studio 2022 Developer PowerShell v17.10.1
** Copyright (c) 2022 Microsoft Corporation

contain Clang CL version 16.0.6, but Clang CL version >=17.0.0 is expected for that build tool set.

Likely related to #9990

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
  • macOS 11
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • Windows Server 2019
  • Windows Server 2022

Image version and build link

20240603.1.0

example of failing build: https://github.com/PowerGridModel/power-grid-model/actions/runs/9381448994/job/25830720214#step:6:51

Is it regression?

yes,

latest passing image version: 20240514.3.0

example of passing build: https://github.com/PowerGridModel/power-grid-model/actions/runs/9380566997/job/25827885168#step:6:51

Expected behavior

Actual behavior

  • Clang 16.0.6 found
-- The C compiler identification is Clang 16.0.6 with MSVC-like command-line
-- The CXX compiler identification is Clang 16.0.6 with MSVC-like command-line
  • Build fails on STL static_assert that checks that the Clang version >= 17.0.0
In file included from C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\include\concepts:8:
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\include\yvals_core.h(898,1): error: static assertion failed: error STL1000: Unexpected compiler version, expected Clang 17.0.0 or newer.
_EMIT_STL_ERROR(STL1000, "Unexpected compiler version, expected Clang 17.0.0 or newer.");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.40.33807\include\yvals_core.h(519,44): note: expanded from macro '_EMIT_STL_ERROR'
#define _EMIT_STL_ERROR(NUMBER, MESSAGE)   static_assert(false, "error " #NUMBER ": " MESSAGE)
                                           ^             ~~~~~

Repro steps

  • Create GitHub Action with windows-latest
  • Create simple C++-20 program that uses modern STL features:
#include <concepts>

namespace {
struct C{};

template <typename T> concept is_c = std::same_as<T, C>;

static_assert<is_c<C>>;
}  // namespace

int main() {
  C c;
  return 0;
}
  • compile with clang-cl
  • build fails

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions