Non capisco come dovrebbe funzionare.Perché l'assemblatore in linea GCC richiede informazioni di cancellazione, ma MSVC non è
L'assemblatore in linea GCC è un problema da correggere, ma molto specifico sulla marcatura delle informazioni sul clobbering, in modo che il compilatore sappia cosa stai facendo.
L'assembly inline di Microsoft Visual C++ è veramente facile da usare (sembra sempre Just Work), ma non ho idea di quali tipi di garanzie o supposizioni fanno sul tuo codice.
VC++ tenta di "rilevare automaticamente" quali registri sono danneggiati? Come fa a sapere come cambieranno i registri e il puntatore dello stack? Fa qualche ipotesi? Se è così, come si aggirano queste ipotesi?
+1, una risposta molto sofisticata alla domanda di follow-up dell'OP :) –
# 2 è stato un commento molto utile, non ne avevo idea! Grazie! :) – Mehrdad
in 1. sopra dice: * "L'idea è di generare, ed evitare l'analisi" * eppure mi sembra che per il compilatore ricevere le informazioni sugli oggetti danneggiati comporta comunque l'analisi, giusto? Venendo dall'impressione -possibilmente errata- che "l'assemblaggio in linea potrebbe non avere l'obiettivo di aumentare l'indipendenza dell'architettura, e sarà abbastanza facilmente l'assemblaggio essere specifico per la piattaforma", sarebbe bello che ci fosse un dizionario che fornisse le informazioni colpite dal compilatore , invece di permettere ai programmatori di dimenticare le cose. C'è stato qualche sviluppo da quando la domanda è stata data 2012? – humanityANDpeace