Ho iniziato a lavorare su diversi progetti C che stanno costruendo usando gcc
. Credo che questa scelta sia stata fatta per diversi motivi:
- È stato necessario eseguire il cross-compile per il braccio molto presto (credo).
- Le prestazioni sono la prima e la più importante.
-
gcc
era ed è ancora la prima scelta facile.
Non ho motivo di contestare questa scelta e non sono in grado di farlo comunque.
Il codice base di ogni singolo progetto è relativamente piccolo. Ogni progetto si costruisce con un Makefile relativamente pulito (attualmente in fase di aggiornamento), gcc -Wall -Wextra
non si lamenta affatto e viene eseguito un test minimo. Non c'è l'analisi statica automatica o la formattazione del codice in corso e il codice è sintatticamente non coerente, anche se è molto leggibile e si sente pensato.
Non voglio riformattare tutte le righe di codice contemporaneamente, ho intenzione di fare come descritto da qualche parte intorno a questa risposta (soprattutto dal momento che il contesto non è poi così male): refactoring e principalmente riformattazione il più possibile quando si ha a che fare con qualsiasi argomento, ma affrontare gli argomenti senza intenzioni di stile del codice in mente. Sfortunatamente, non sono in grado di imporre uno stile di codice o ulteriori controlli sui commit, ma sento che tra i miei colleghi c'è il senso che dovresti rispettare la convenzione di codice esistente quando modifichi un file (anche se sono consapevole dello stato attuale del codice non è accaduto magicamente), e il desiderio di scrivere un buon codice.
Questa è la mia prima programmazione in C con un tale stato d'animo, e sono molto attratto dai vari strumenti di analisi e formattazione del codice che clang
fornisce.
L'essenza della mia domanda è quindi: potrebbe portare a problemi a seguire clang
suggerimenti e usare clang
strumenti di formattazione e analisi mentre si costruisce con gcc
? Ad esempio, alcuni avvertimenti potrebbero provenire da una rappresentazione interna che gcc
non utilizza, o dal codice byte clang
che avrebbe intenzione di generare che gcc
non lo farà.
Esiste un buon modo per passare automaticamente i parametri di compilazione gcc
(principalmente l'architettura di destinazione e il livello di ottimizzazione) a clang
in modo che gli avvertimenti di avviso abbiano senso?
Aggiungerò che ho familiarità con gcc
e la sua segnalazione degli errori. Sono interessato a ricevere più (rilevanti) avvertimenti ed errori, non solo avvertimenti più chiari e più comprensibili. Quindi, se non posso fidarmi di ulteriori suggerimenti che clang
può produrre in base alla sua rappresentazione interna, perché con la creazione di gcc
alla fine della giornata, quindi non sono molto interessato a farlo.
Ho incluso un sacco di contesto, quindi sentitevi liberi di fare qualsiasi osservazione o di rispondere a qualsiasi domanda sottostante che non potevo evidenziare.