abseil / abseil/abseil-cpp

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

Aperta
#1,435 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.