Comecei a trabalhar em vários projetos C que estão construindo usando gcc. Acredito que essa escolha foi feita por vários motivos:
- Tive que fazer uma compilação cruzada para o braço muito cedo (eu acho).
- O desempenho é a primeira e mais importante especificação.
gccfoi e ainda é a primeira escolha fácil.
Não tenho motivos para contestar essa escolha e não estou em posição de fazê-lo de qualquer maneira.
A base de código de qualquer projeto único é relativamente pequena. Todo projeto é construído com um Makefile relativamente limpo (atualmente sendo atualizado), gcc -Wall -Wextranão se queixa quase e é feito um teste mínimo. Não há análise estática automatizada ou formatação de código, e o código é sintaxe não consistente, embora seja muito legível e pareça pensado.
Não quero reformatar todas as linhas de código de uma só vez, pretendo fazer o que está descrito em alguma parte desta resposta (especialmente porque o contexto não é tão ruim): refatorar e reformatar o máximo possível ao lidar com qualquer tópico, mas ainda abordando tópicos sem nenhuma intenção de estilo de código. Infelizmente, não estou em posição de impor um estilo de código ou verificações adicionais nas confirmações, mas sinto que há uma sensação entre meus colegas de que você deve respeitar a convenção de código existente ao modificar um arquivo (embora eu esteja ciente do estado atual do código não aconteceu magicamente) e um desejo de escrever um bom código.
Esta é minha primeira vez em programação em C com esse estado de espírito, e estou muito atraído pelas várias ferramentas de análise e formatação de código clangfornecidas.
A essência da minha pergunta é: poderia levar a problemas para seguir as clangdicas e usar clangferramentas de formatação e análise durante a construção gcc? Por exemplo, alguns avisos podem vir de uma representação interna gccnão usada ou do bytecode clangpretendem gerar isso gccnão.
Existe uma boa maneira de passar automaticamente os gccparâmetros de compilação (principalmente a arquitetura de destino e o nível de otimização) para clangque as dicas de aviso façam sentido?
Acrescentarei que estou familiarizado gcce com o relatório de erros. Estou interessado em receber mais avisos e erros (relevantes), não apenas avisos mais redigidos e mais compreensíveis. Portanto, se não posso confiar em dicas adicionais que clangpodem ser produzidas com base em sua representação interna, porque eu desenvolvo gccno final do dia, não estou realmente interessado em fazer isso.
Incluí muito contexto; portanto, sinta-se à vontade para fazer qualquer observação ou responder a qualquer pergunta subjacente que não pude fazer.