clang-cl 9.0.1 build failures

オープン
#120 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
cpp
領域
build-system

調査の方向性

まず boost/smart_ptr/detail/spinlock_pool.hpp と boost/smart_ptr/detail/spinlock_std_atomic.hpp から始め、参照されている CI ログと clang-cl 9.0.1 を使って Boost.Iterator の失敗を再現します。完了の条件は、影響を受ける smart_ptr コードがそのコンパイラで正常にビルドされ、既存のアトミック spinlock の動作が維持されることです。

索引モデルが issue の本文から書いたものです。

説明

Boost.Iterator CI fails with the following errors:

compile-c-c++ bin.v2\libs\iterator\test\indirect_iterator_test.test\clang-win-9.0.1\debug\x86_32\cxxstd-latest-iso\threading-multi\indirect_iterator_test.obj
In file included from libs\iterator\test\indirect_iterator_test.cpp:25:
In file included from .\boost/shared_ptr.hpp:17:
In file included from .\boost/smart_ptr/shared_ptr.hpp:28:
.\boost/smart_ptr/detail/spinlock_pool.hpp(77,5): error: no matching constructor for initialization of 'std::atomic_flag'
    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
.\boost/smart_ptr/detail/spinlock_std_atomic.hpp(88,38): note: expanded from macro 'BOOST_DETAIL_SPINLOCK_INIT'
#define BOOST_DETAIL_SPINLOCK_INIT { ATOMIC_FLAG_INIT }
                                     ^~~~~~~~~~~~~~~~
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\atomic(158,26): note: expanded from macro 'ATOMIC_FLAG_INIT'
#define ATOMIC_FLAG_INIT        {0}
                                ^~~
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\atomic(169,2): note: candidate constructor not viable: no known conversion from 'int' to 'const std::atomic_flag' for 1st argument
        atomic_flag(const atomic_flag&) = delete;
        ^
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\atomic(168,2): note: candidate constructor not viable: requires 0 arguments, but 1 was provided
        atomic_flag() noexcept = default;
        ^

See here for the full log.

I've also noticed similar failures in Boost.Log here with clang 3.5 and 3.6, but those compilers were rather old. This one is not.

主要言語
C++
スター
111
フォーク
116
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

boostorg/smart_ptr のほかの issue

boostorg/smart_ptr の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。