GoGPT Best VPN GoSearch

OnWorks-Favicon

sparse - Online in der Cloud

Führen Sie Sparse im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl Sparse, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


sparse – Semantischer Parser für C

ZUSAMMENFASSUNG


spärlich [WARNUNG OPTIONAL] ... Datei.c

BESCHREIBUNG


Sparse analysiert den C-Quellcode, sucht nach Fehlern und erzeugt Warnungen bei Standardfehlern.

Sparse akzeptiert Optionen, die die Menge der zu generierenden Warnungen steuern. Um Warnungen einzuschalten
Sparse wird standardmäßig nicht ausgegeben. Verwenden Sie die entsprechende Warnoption -Wetwas.
Sparse gibt standardmäßig einige Warnungen aus; Um diese Warnungen auszuschalten, übergeben Sie die Negation von
die zugehörige Warnmöglichkeit, -Wnein-etwas.

WARNUNG OPTIONAL


-Wsparse-alle
Aktivieren Sie alle Sparse-Warnungen, mit Ausnahme derjenigen, die explizit über deaktiviert wurden
-Wnein-etwas.

-Waddress-Raum
Warnung vor Code, der Zeiger auf verschiedene Adressräume mischt.

Sparse erlaubt ein erweitertes Attribut __attribute__((address_space(num))) on
Zeiger, der ein Zeigerziel im Adressraum bezeichnet num (eine Konstante
ganze Zahl). Mit -Waddress-Raum, Sparse behandelt Zeiger mit identischen Zieltypen
aber unterschiedliche Adressräume als unterschiedliche Typen. Um diese Warnung zu überschreiben, z
Verwenden Sie für Funktionen, die Zeiger zwischen Adressräumen konvertieren, einen Typ, der
Dazu gehören __attribute__((force)).

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie -Wno-Adressraum.

-Bitweise
Warnen Sie vor nicht unterstützten Vorgängen oder Typkonflikten mit eingeschränkten Ganzzahltypen.

Sparse unterstützt ein erweitertes Attribut, __attribute__((bitweise)), wodurch ein
neuer eingeschränkter Integer-Typ aus einem Basis-Integer-Typ, der sich von der Basis unterscheidet
Ganzzahltyp und von jedem anderen eingeschränkten Ganzzahltyp, der nicht darin deklariert ist
Erklärung bzw typedef. Dies ermöglicht beispielsweise die Erstellung von Programmen typedefs für
Ganzzahltypen mit spezifischer Endianness. Mit -Bitweise, Sparse warnt bei jedem
Verwendung eines eingeschränkten Typs in anderen arithmetischen Operationen als bitweisen Operationen,
und bei jeder Umwandlung eines eingeschränkten Typs in einen anderen, außer über eine Umwandlung
Dazu gehören __attribute__((force)).

__bitwise ist letztendlich eine „stärkere Ganzzahltrennung“. Das erlaubt es dir nicht
mit nicht-bitweisen Ganzzahlen zu mischen, daher ist es jetzt viel schwieriger, den Typ zu verlieren
Fehler.

__bitwise ist für *einzigartige Typen*, die nicht mit anderen Typen gemischt werden können, und zwar
Sie möchten niemals einfach eine zufällige Ganzzahl verwenden (die Ganzzahl 0 ist jedoch etwas Besonderes).
und wird stillschweigend akzeptiert iirc – es ist so etwas wie „NULL“ für Zeiger). Also
„gfp_t“ oder die „safe endianness“-Typen wären __bitwise: Sie können nur damit arbeiten
indem Sie bestimmte Operationen ausführen, die *diesen* bestimmten Typ kennen.

Im Allgemeinen möchten Sie bitweise, wenn Sie nach Typsicherheit suchen. Sparse nicht
Geben Sie diese Warnungen standardmäßig aus.

-Wcast-to-as
Warnen Sie vor Umwandlungen, die einem Zeigertyp einen Adressraum hinzufügen.

Eine Besetzung, die beinhaltet __attribute__((force)) unterdrückt diese Warnung.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wcast-truncate
Warnung vor Casts, die konstante Werte abschneiden.

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie -Wno-cast-truncate.

-Wcontext
Warnen Sie vor möglichen Fehlern bei der Synchronisierung oder anderen abgegrenzten Kontexten.

Sparse unterstützt mehrere Möglichkeiten zur Bezeichnung von Funktionen oder Anweisungen, die begrenzen
Kontexte, wie z. B. Synchronisierung. Funktionen mit dem erweiterten Attribut
__attribute__((Kontext(Ausdruck,im Zusammenhang,out_context)) erfordern den Kontext
Ausdruck (zum Beispiel eine Sperre), um den Wert zu haben im Zusammenhang (eine Konstante
nichtnegative Ganzzahl) beim Aufruf und gibt den Wert zurück out_context (eine Konstante
nichtnegative ganze Zahl). Für über Makros definierte APIs verwenden Sie das Anweisungsformular
__Kontext__(Ausdruck,in_value,out_value) im Hauptteil des Makros.

Mit -Wcontext Sparse warnt, wenn es erkennt, dass eine Funktion den Kontext ohne ändert
Dies wird mit a angezeigt Kontext Attribut, entweder durch Verringern eines Kontexts unter Null
(z. B. indem Sie eine Sperre aufheben, ohne sie zu erwerben) oder mit einer Änderung zurückkehren
Kontext (z. B. durch Erwerb einer Sperre, ohne sie aufzuheben). Sparse wird auch warnen
über Codeblöcke, die möglicherweise in unterschiedlichen Kontexten ausgeführt werden können.

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie -Wno-Kontext.

-Wdecl Warnen Sie vor nicht-statisch Variablen- oder Funktionsdefinition, die kein vorheriges hat
Erklärung.

Private Symbole (Funktionen und Variablen) innerhalb einer bestimmten Quelldatei sollten
- statisch, um zusätzliche Compiler-Optimierungen zu ermöglichen und die Erkennung nicht verwendeter Dateien zu ermöglichen
Symbole und verhindern, dass sich anderer Code auf diese internen Symbole verlässt. Öffentlich
Symbole, die von anderen Quelldateien verwendet werden, benötigen für diese anderen sichtbare Deklarationen
Quelldateien, beispielsweise in einer Header-Datei. Alle Deklarationen sollten in eine von fallen
diese beiden Kategorien. Also mit -Wdecl, Sparse warnt vor jeder Symboldefinition
mit keinem statisch noch eine Erklärung. Um diese Warnung zu beheben, deklarieren Sie es als privat
Symbole statischund stellen Sie sicher, dass die Dateien, die öffentliche Symbole definieren, das Symbol haben
zuerst verfügbare Deklarationen (z. B. durch Einbinden der entsprechenden Header-Datei).

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie -Wno-decl.

-WErklärung-nach-Erklärung
Warnen Sie vor Deklarationen, die nicht am Anfang eines Blocks stehen.

Diese Deklarationen sind in C99 zulässig, jedoch nicht in C89.

Sparse gibt diese Warnungen standardmäßig nur aus, wenn der C-Dialekt C89 ist (d. h. -ansi).
oder -std=c89). Um sie auszuschalten, verwenden Sie -Wno-declaration-after-statement.

-Wdefault-bitfield-sign
Warnt vor Bitfeldern ohne explizite Vorzeichen.

Bitfelder haben keine standardisierte Standardsignatur. (C99 6.7.2) Ein Bitfeld
ohne explizites unterzeichnet or ohne Vorzeichen schafft ein Portabilitätsproblem für Software
Das hängt vom verfügbaren Wertebereich ab. Um dies zu beheben, geben Sie das Bitfeld an
tippe als unterzeichnet or ohne Vorzeichen ausdrücklich.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wdesignated-init
Warnt vor der Positionsinitialisierung von Strukturen, die als gekennzeichnet sind und deren Angabe erforderlich ist
Initialisierer.

Sparse erlaubt ein Attribut __attribute__((designated_init)) was eine Struktur markiert als
erfordert bestimmte Initialisierer. Sparse warnt vor Position
Initialisierung einer Strukturvariablen oder eines Strukturliterals eines Typs, der dies hat
Attribut.

Durch die Anforderung bestimmter Initialisierer für einen bestimmten Strukturtyp wird der Code isoliert
Verwenden Sie diesen Strukturtyp, um das Layout des Typs zu ändern und so die Notwendigkeit zu vermeiden
Ändern Sie die Initialisierer für diesen Typ, es sei denn, sie initialisieren einen entfernten oder inkompatiblen Typ
geändertes Feld.

Häufige Beispiele für diesen Strukturtyp sind Sammlungen von Funktionszeigern für
die Implementierungen einer Klasse verwandter Operationen, für die der Standardwert NULL ist
für ein nicht erwähntes Feld in einem bestimmten Initialisierer wird das korrekt angezeigt
Fehlen dieser Operation.

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie
-Wno-designated-init.

-Wdo-while
Warnung vor Do-While-Schleifen, die den Schleifenkörper nicht durch geschweifte Klammern begrenzen.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wenum-Mismatch
Warnen Sie vor der Verwendung eines falschen Ausdrucks enum Typ beim Initialisieren
ein anderer enum Typ, Zuweisung zu einem anderen enum Typ oder Übergabe eines Arguments an a
Funktion, die eine andere erwartet enum Art.

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie -Wno-enum-mismatch.

-Winit-cstring
Warnt vor der Initialisierung eines char-Arrays mit einer zu langen konstanten C-Zeichenfolge.

Wenn die Größe des char-Arrays und die Länge der Zeichenfolge gleich sind, gibt es keine
Platz für das letzte Nullzeichen der Zeichenfolge im Array:

char s[3] = "abc";

Wenn das Array als Byte-Array und nicht als C-String verwendet wird, handelt es sich bei dieser Warnung nur um Rauschen.
Wenn das Array jedoch an Funktionen übergeben wird, die C-Strings wie printf(%s) verarbeiten
und strcmp kann es zu Problemen kommen.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wnon-pointer-null
Warnung vor der Verwendung von 0 als NULL-Zeiger.

0 hat einen Integer-Typ. NULL hat einen Zeigertyp.

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie
-Wno-non-pointer-null.

-Wold-Initialisierer
Warnung vor der Verwendung der GCC-Syntax vor C99 für bestimmte Initialisierer.

C99 bietet eine Standardsyntax für bestimmte Felder in struct or Gewerkschaft
Initialisierer:

struct structname var = { .field = value };

GCC verfügt außerdem über eine alte, nicht standardmäßige Syntax für bestimmte Initialisierer, die älter ist
C99:

struct structname var = { field: value };

Sparse warnt vor der Verwendung der nicht standardmäßigen GCC-Syntax für bestimmte
Initialisierer. Um diese Warnung zu beheben, konvertieren Sie die angegebenen Initialisierer, um sie zu verwenden
Standard-C99-Syntax.

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie
-Wno-old-initializer.

-Wone-bit-signed-bitfield
Warnen Sie vor jedem One-Bit unterzeichnet Bitfelder.

Ein bisschen unterzeichnet bitfield kann nur die Werte 0 und -1 haben, bzw. bei einigen Compilern
nur 0; Dies führt zu unerwartetem Verhalten für Programme, die diese Fähigkeit erwartet haben
um 0 und 1 zu speichern.

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie
-Wno-one-bit-signed-bitfield.

-Wparen-string
Warnen Sie vor der Verwendung einer Zeichenfolge in Klammern zum Initialisieren eines Arrays.

Die Standard-C-Syntax lässt keine Zeichenfolge in Klammern als Array-Initialisierer zu.
GCC erlaubt diese Syntax als Erweiterung. Mit -Wparen-string, Sparse wird warnen
über diese Syntax.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wptr-Subtraktionsschläge
Warnung beim Subtrahieren von zwei Zeigern auf einen Typ mit einer Größe, die keine Zweierpotenz ist.

Das Subtrahieren zweier Zeiger auf einen bestimmten Typ ergibt einen Unterschied hinsichtlich der Anzahl
von Artikeln dieser Art. Um diesen Wert zu generieren, müssen Compiler normalerweise Folgendes tun
Teilen Sie die Differenz durch die Größe des Typs, ein möglicherweise kostspieliger Vorgang
für andere Größen als Zweierpotenzen.

Mit Zeigersubtraktion geschriebener Code kann stattdessen häufig einen anderen Ansatz verwenden, z
als Array-Indizierung mit einer expliziten Array-Indexvariablen, was Compilern ermöglichen kann
um effizienteren Code zu generieren.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wreturn-void
Warnen Sie, wenn eine Funktion mit dem Rückgabetyp void einen void-Ausdruck zurückgibt.

C99 ermöglicht dies und ermöglicht in einigen Fällen generischen Code in Makros
die typeof verwenden oder einen Typ als Makroargument verwenden. Allerdings einige Programme
Betrachten Sie diesen schlechten Stil und diese Programme können ihn verwenden -Wreturn-void um Warnungen zu erhalten
darüber.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Schatten
Warnen Sie, wenn Sie ein Symbol deklarieren, das eine Deklaration mit demselben Namen in einem überschattet
äußerer Geltungsbereich.

Solche Deklarationen können zu fehleranfälligem Code führen.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wtransparente-Union
Warnen Sie vor jeder Deklaration, die die GCC-Erweiterung verwendet
__attribute__((transparent_union)).

Sparse gibt diese Warnungen standardmäßig aus. Um sie auszuschalten, verwenden Sie
-Wno-transparente-Union.

-Wtypesign
Warnung beim Konvertieren eines Zeigers auf einen Ganzzahltyp in einen Zeiger auf einen Ganzzahltyp
mit unterschiedlicher Signatur.

Sparse gibt diese Warnungen standardmäßig nicht aus.

-Wundef
Warnen Sie vor Präprozessorbedingungen, die den Wert eines undefinierten Werts verwenden
Präprozessorsymbol.

Standard C (C99 6.10.1) erlaubt die Verwendung des Werts eines undefinierten Präprozessorsymbols
in Präprozessor-Bedingungen und gibt an, dass es den Wert 0 hat.
Dieses Verhalten kann zu subtilen Fehlern führen.

Sparse gibt diese Warnungen standardmäßig nicht aus.

MISC OPTIONAL


-gcc-Basisverzeichnis dir
Suchen Sie nach vom Compiler bereitgestellten Systemheadern in dir/include/ und dir/include-fixed/.

-multiarch-dir dir
Suchen Sie im Multiarch-Unterverzeichnis nach Systemheadern dirdem „Vermischten Geschmack“. Seine dir Name würde
nehmen normalerweise die Form des normalisierten GNU-Tripletts des Ziels an. (z. B. i386-linux-
Gnu).

anderes OPTIONAL


-ftabstop=BREITE
Legen Sie den Abstand zwischen den Tabstopps fest. Dies hilft dabei, die richtige Spalte für spärliche Berichte zu erstellen
Zahlen in Warnungen oder Fehlern. Wenn der Wert kleiner als 1 oder größer als 100 ist,
Die Option wird ignoriert. Der Standardwert ist 8.

Nutzen Sie Sparse online mit den onworks.net-Diensten


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad




×
Werbung
❤ ️Hier einkaufen, buchen oder kaufen – kostenlos, damit die Dienste kostenlos bleiben.