diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f3ea41c..8f0b999 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,9 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] + # macos-14 builds with AppleClang 15 (Xcode 15.4), the oldest compiler CoreTrace builds + # the analyzer with; macos-latest has a newer one (#228). + os: [ubuntu-latest, macos-latest, macos-14] steps: - uses: actions/checkout@v4 diff --git a/src/app/AnalyzerApp.cpp b/src/app/AnalyzerApp.cpp index ed68226..5a1cde3 100644 --- a/src/app/AnalyzerApp.cpp +++ b/src/app/AnalyzerApp.cpp @@ -1086,8 +1086,10 @@ static AppStatus analyzeWithSharedModuleLoading(const std::vector& continue; if (common.params != wrapper.params) common.pairs.clear(); - std::erase_if(common.pairs, - [&](const auto& pair) { return wrapper.pairs.count(pair) == 0; }); + // Captures the member, not the structured binding: AppleClang 15 cannot + // capture a structured binding. + std::erase_if(common.pairs, [&pairs = wrapper.pairs](const auto& pair) + { return pairs.count(pair) == 0; }); } } grew = false;