36

Quali flag devo (se) sulla riga di comando per disabilitare l'ottimizzazione del valore di ritorno abilitata automaticamente dal compilatore g ++?Disattivazione dell'ottimizzazione del valore restituito di g ++

+2

dare un esempio di codice, e perché non si desidera che questo tipo di ottimizzazione – fge

+2

@fge sto debug e testare l'implementazione della mia libreria software così io preferirei vedere ogni singolo passaggio nel corso dell'esecuzione del mio software ... –

+5

Ovviamente, ti rendi conto che molte persone effettivamente usano la tua libreria con il costruttore elision, quindi devi testarlo anche in quella configurazione? –

risposta

71

-fno-elide-constructors

Lo standard C++ permette un'implementazione di omettere la creazione di un temporaneo che viene utilizzato solo per inizializzare un altro oggetto dello stesso tipo. Specificando questa opzione disabilita quell'ottimizzazione e costringe G ++ a chiamare il costruttore di copie in tutti i casi. [Fonte: gcc uomo]


+0

Grazie mille !!! Ora ho quello che volevo vedere dal mio compilatore. –

+1

Off topic: potrebbe salvare qualcuno un po 'di tempo per notare che clang [mio --version è Apple clang versione 4.1 (tag/Apple/clang-421.11.66) (basato su LLVM 3.1svn)] ha un bug quando si usa questo flag , che nel mio caso sembra produrre errori di seg: http://llvm.org/bugs/show_bug.cgi?id=12208 –