Ho aggiornato oggi da Ubuntu 12.04 che penso abbia g ++ - 4.6 in Ubuntu 12.10 con g ++ - 4.7.2. Nel mio codice ho avuto alcune funzioni contrassegnate come __attribute__((always_inline))
. La ragione di ciò era semplicemente che la creazione di profili mi mostrava che aumentava significativamente le prestazioni del codice. Ha funzionato bene con g ++ 4.6 ma ora con g ++ 4.7 ottengo il messaggio di errore:Inlining non riuscito: il corpo della funzione può essere sovrascritto al momento del collegamento
error: inlining failed in call to always_inline 'void func_name(args)': function body can be overwritten at link time
Non posso condividere la mia codice vero, ho cercato di restringere il campo, ma quando cambio troppo l'errore va via, quindi non è utile. Sono interessato alla causa principale di questo messaggio di errore.