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

È stato utile?

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ò.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top