iwyu добавляет cxxabi.h для __ced_unwind - PullRequest
1 голос
/ 05 мая 2020

Я запускаю iwyu над своей базой кода, и есть несколько файлов, в которых он настаивает, чтобы я добавил

#include <cxxabi.h>  // for __forced_unwind

Я смог удалить код и обнаружил, что это похоже на cv.wait(mu).

В частности, версия без предиката.

Если я удалю cv.wait(mu), iwyu больше не предлагает cxxabi.h.

Что это за функция __forced_unwind, почему iwyu рекомендует это, и можно ли это безопасно игнорировать?

Минимальный тестовый пример:

// foo.cpp

#include <condition_variable>
#include <mutex>

void foo(std::condition_variable_any* cv, std::mutex* mu) {
  cv->wait(*mu);
}
src/foo.cpp should add these lines:
#include <cxxabi.h>            // for __forced_unwind

src/foo.cpp should remove these lines:

The full include-list for src/foo.cpp:
#include <cxxabi.h>            // for __forced_unwind
#include <condition_variable>  // for condition_variable_any
#include <mutex>               // for mutex
---
...