abseil / abseil/abseil-cpp

[Bug]: clang 15 defines `__GXX_RTTI` but doesn't have `cxxabi.h`

オープン
#1,435 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

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

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