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.
gcc
foi 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 -Wextra
nã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 clang
fornecidas.
A essência da minha pergunta é: poderia levar a problemas para seguir as clang
dicas e usar clang
ferramentas de formatação e análise durante a construção gcc
? Por exemplo, alguns avisos podem vir de uma representação interna gcc
não usada ou do bytecode clang
pretendem gerar isso gcc
não.
Existe uma boa maneira de passar automaticamente os gcc
parâmetros de compilação (principalmente a arquitetura de destino e o nível de otimização) para clang
que as dicas de aviso façam sentido?
Acrescentarei que estou familiarizado gcc
e 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 clang
podem ser produzidas com base em sua representação interna, porque eu desenvolvo gcc
no 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.