[Bug]: clang 15 defines `__GXX_RTTI` but doesn't have `cxxabi.h`
- Lingua principale
- C++
- Stelle
- 18.1k
- Fork
- 3.2k
- Merge medio
- 20h 36m
- PR unite (30g)
- 1
Descrizione
### 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.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Il problema si trova in layout.h, dove il rilevamento di __GXX_RTTI include cxxabi.h, ma clang 15+ definisce __GXX_RTTI senza fornire quell'header. Inizia esaminando layout.h e la configurazione di build circostante. Controlla come altri progetti rilevano la disponibilità di cxxabi.h. Esegui una build con clang 15/16 per vedere l'errore, quindi modifica i controlli del preprocessore in modo che verifichino l'esistenza dell'header, non solo della macro.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cmake, cpp
- Ambito
- build-system
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 45/100