In SP ist der Referenz-Compiler GCC (C Compiler des GNU Projekts).
GCC ist ausführlich dokumentiert. Die Dokumentation für Version 10 (was im CIP installiert ist) kann hier gelesen werden. In einem Terminal ist es auch möglich
$ info gcc
einzugeben, und mit
dem Info
Reader (vergleichbar zu dem man
Befehl,
siehe auch Wikipedia) lesbar.
Ich finde es ist Empfehlenswert die Manual zu durchstöbern, da sie grundsätzlich gut geschrieben ist. Interessante Seiten in der Manual könnten bspw. sein:
Run-Time(Program Instrumentation) Funktionen erweitern, die zum analysieren benutzt werden können. Bspw. kann man mit
-fsanitize=leak
eine Art Valgrind-iges warnen
bei Speicherlecks direkt in das Programm einbauen,
mit -fsanitize=undefined
Warnungen generieren wenn
sich das Programm auf undefiniertes Verhalten verlässt,
oder -fsanitize=thread
um zu versuchen
Wettlaufsitiationen zu erkennen.
-fanalyzer
versucht
mögliche Programmflüsse zu analysieren, um herauszufinden ob ein
Segmentation Fault, Speicher Lecks, etc. möglich sind. Leider hat
es noch ein paar false positives(besonders in Version 10), also kann man sich nicht vollkommen darauf verlassen.
-Wall
und -Werror
gibt es noch
eine lange Liste
an zusätzlichen
Warnungen die beim Programmieren helfen können
(bspw. -Wextra
könnte vielen bereits helfen).
Es kann auch hilfreich sein neben GCC andere Compiler zu benutzen,
um seine Programme zu testen. Hierzu zählt Clang
(mit dem extra-strengem -Weverything
Flag) und TCC,
ein schneller und kleiner C99 Compiler. Letzterer ist leider nicht im CIP installiert.
Eine längere Liste kann hier gefunden werden.
$Id: compiler.html,v 1.6 2022/06/15 10:30:58 oj14ozun Exp $