Dovrei essere preoccupato per g ++ avvertimenti dicendo 'inline fallito'?
Domanda
In un progetto a cui sto lavorando in ufficio, quando compiliamo una build di rilascio (con -Os) otteniamo centinaia di avvertimenti da g ++ dicendo che inlining è riuscito. La maggior parte di questi avvertimenti sembrano provenire da spinta, ma alcuni provengono dalla nostra intestazioni di libreria (.dylibs binarie che stiamo con link a). Possono questi avvertimenti generalmente essere tranquillamente ignorati, o sono qualcosa che dovrei essere preoccupato?
Nota: Stiamo usando g ++ 4.0 su Mac OS X
Soluzione
g ++ è segnalata su ciò che è essenzialmente, strettamente un problema di prestazioni - si sta richiedendo implementazioni inline
che proprio non può essere inline. Se l'utilizzo di inline
non ha molta importanza, si consiglia di rimuoverlo (compilatori sono in grado di inline funzioni senza che suggerimento, si sa -!), Ma in termini di codice di correttezza, è possibile ignorare l'avviso. Se l'utilizzo di inline
davvero non importa, vale a dire, è fondamentale per le prestazioni (invece di essere un'ottimizzazione prematura stupido), l'avvertimento è che si dice di rielaborare il codice in modo che possa essere raggiunto (caso peggiore, spostandosi verso il basso per le macro - sospiro, ma, quando è necessario, è necessario -!).
Altri suggerimenti
Si deve salvare se non
- ha colpito un bug in gcc
- anticipare funzioni inline nel codice
- cercare di fare cose brutte
Si dovrebbe cercare di ridurre al minimo le avvertenze però.