2011-12-19 3 views
5

Lavorerò esclusivamente in C. Ubunutu 10.10 recupererà la versione 2.8 di Clang dai suoi repository e la installerà completamente. Ho compilato Clang v 3.1 dal sorgente e l'ho aggiunto al percorso (dopo aver disinstallato Clang 2.8), ma non ho accesso alle sue pagine man in questo modo, e ho la sensazione occasionale di non averlo completamente "installato", anche se sembra essere perfettamente funzionante su alcuni test.Qualche differenza pratica tra le versioni Clang 2.8 e 3.1 per uno sviluppatore C?

C'è qualche differenza pratica tra le versioni 2.8 e 3.1 dal punto di vista di uno sviluppatore C (studente effettivamente)? Sto lavorando esclusivamente in C e non userò le sue capacità C++ o C obiettivo. Credo che la maggior parte dello sviluppo in Clang è stato recentemente nell'estensione delle sue abilità C++.

+0

Perché non leggi le note di rilascio e dicci cosa hai trovato? –

+0

Credo che le ottimizzazioni e gli avvertimenti siano migliorati (anche per C). Allo stesso modo, per le recenti evoluzioni di GCC. –

risposta

2

La differenza evidente che ho rilevato è che per i parametri della funzione VLA 2.8 il core del compilatore viene scaricato. In 2.9 (e quindi in 3.1 suppongo) questo bug sembra essere corretto.

Anche questa versione più recente di clang implementa già parte di C11, in particolare _Generic.

+0

http://gustedt.wordpress.com/2011/01/13/vla-as-function-arguments/ –

+0

Nota: alcune funzionalità di C11 che funzionano già in gcc/icc dump core in clang (3.1), in primo piano il designato inizializzazione di strutture anonime e sindacati – hroptatyr

+0

@hroptatyr: tuttavia mancano molte estensioni. Clang è molto meglio ora in C++ che in C. –