[Bug]: clang 15 defines `__GXX_RTTI` but doesn't have `cxxabi.h`
- 主要言語
- C++
- スター
- 18.1k
- フォーク
- 3.2k
- 平均マージ
- 20時間 36分
- マージ済み PR(30日)
- 1
説明
### Describe the issue
In layout.h we have
```
if defined(__GXX_RTTI)
#define ABSL_INTERNAL_HAS_CXA_DEMANGLE
#endif
#ifdef ABSL_INTERNAL_HAS_CXA_DEMANGLE
#include
#endif
```
which then falls over since cxxabi.h doesn't exist.
### Steps to reproduce the problem
Build run clang-tidy version 15 or 16 (or presumably build with the corresponding clang version).
### What version of Abseil are you using?
20230125.2
### What operating system and version are you using?
Mac OS 13
### What compiler and version are you using?
clang-tidy 15/16
### What build system are you using?
cmake 3.26.3
### Additional context
Using the conan package.
コントリビューションガイド
調査の方向性
この問題は layout.h にあり、__GXX_RTTI の検出で cxxabi.h をインクルードしていますが、clang 15+ は __GXX_RTTI を定義する一方で、そのヘッダーを提供していません。まず layout.h と周辺の build 設定を調べてください。他のプロジェクトが cxxabi.h の可用性をどのように検出しているか確認してください。clang 15/16 で build を実行してエラーを確認し、その後、マクロだけでなくヘッダーの存在をテストするようにプリプロセッサチェックを調整してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cmake, cpp
- 領域
- build-system
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 45/100