Saya mulai mengerjakan beberapa proyek C yang sedang digunakan gcc
. Saya percaya pilihan ini dibuat karena beberapa alasan:
- Harus kompilasi silang untuk lengan sangat awal (saya pikir).
- Kinerja adalah spesifikasi pertama dan terpenting.
gcc
adalah dan masih merupakan pilihan pertama yang mudah.
Saya tidak punya alasan untuk menentang pilihan itu dan saya tidak dalam posisi untuk melakukannya.
Basis kode dari setiap proyek tunggal relatif kecil. Setiap proyek dibangun dengan Makefile yang relatif bersih (saat ini sedang disegarkan), gcc -Wall -Wextra
hampir tidak mengeluh sama sekali dan beberapa pengujian minimal dilakukan. Tidak ada analisis statis otomatis atau pemformatan kode yang dilakukan dan kode ini secara sintaksis tidak konsisten, meskipun sangat mudah dibaca dan terasa dipikirkan.
Saya tidak ingin memformat ulang setiap baris kode sekaligus, saya bermaksud melakukan seperti yang dijelaskan di sekitar jawaban ini (terutama karena konteksnya sebenarnya tidak seburuk): refactoring dan terutama memformat ulang sebanyak mungkin ketika berhadapan dengan topik apa pun, tetapi tetap mengambil topik tanpa niat gaya kode dalam pikiran. Sayangnya, saya tidak dalam posisi untuk memaksakan gaya kode atau pemeriksaan tambahan pada komitmen, tetapi saya merasa ada perasaan di antara rekan-rekan saya bahwa Anda harus menghormati konvensi kode yang ada saat memodifikasi file (Meskipun saya menyadari keadaan saat ini) kode tidak secara ajaib terjadi), dan keinginan untuk menulis kode yang baik.
Ini adalah pemrograman pertama saya di C dengan keadaan pikiran seperti itu, dan saya sangat tertarik dengan berbagai analisis kode dan alat pemformatan yang clang
menyediakan.
Inti dari pertanyaan saya adalah: bisakah hal itu menyebabkan masalah untuk mengikuti clang
petunjuk dan menggunakan clang
alat pemformatan dan analisis saat membangun gcc
? Misalnya, beberapa peringatan bisa datang dari representasi internal yang gcc
tidak digunakan, atau dari bytecode clang
akan menghasilkan gcc
tidak.
Apakah ada cara yang baik untuk secara otomatis melewati gcc
parameter kompilasi (terutama arsitektur target dan level optimisasi) clang
sehingga petunjuk peringatan masuk akal?
Saya akan menambahkan bahwa saya kenal gcc
dan pelaporan kesalahannya. Saya tertarik untuk mendapatkan lebih banyak peringatan dan kesalahan (relevan), bukan hanya peringatan yang lebih baik dan lebih dimengerti. Jadi jika saya tidak dapat mempercayai petunjuk tambahan yang clang
dapat menghasilkan berdasarkan representasi internal karena saya membangun dengan gcc
pada akhir hari, maka saya tidak benar-benar tertarik untuk melakukan ini.
Saya memasukkan banyak konteks sehingga merasa bebas untuk membuat komentar atau untuk menjawab pertanyaan mendasar yang tidak dapat saya sampaikan.