clang crash (PLEASE submit a bug report)

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
starcow
Establishment
Beiträge: 577
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Wohnort: Zürich
Kontaktdaten:

clang crash (PLEASE submit a bug report)

Beitrag von starcow »

Per Zufall habe ich entdeckt, dass mir clang (16.0.0) unter folgedem Szenario crasht.

Code: Alles auswählen

/* file.c */
#include <stdlib.h> // Ja, nur diese Zeile mit Zeilenumbruch am Ende
clang file.c -E

fatal error: error in backend: IO failure on output stream: not enough memory
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang file.c -E
Exception Code: 0xE0000001

Wenn man sich das Ganze als Datei generieren lässt, passiert dies allerdings nicht. Nur beim Output direkt in das Terminal.
clang file.c -E -o out.txt

Auf gcc.godbolt.org konnte ich das Szenarion nicht reproduzieren. Aber das hat vermutlich eher damit zutun, wie dort der Output weiterverarbeitet wird.
In gcc existiert dieses Problem nicht.

Könnt ihr das vielleicht bestätigen?
Freelancer 3D- und 2D-Grafik
mischaschaub.com
NytroX
Establishment
Beiträge: 410
Registriert: 03.10.2003, 12:47

Re: clang crash (PLEASE submit a bug report)

Beitrag von NytroX »

Also bei mir geht es.

Versuch doch mal eine aktuelle Version vom Clang zu nehmen.
Wenn du unter Windows bist dann gibt es auch viele kaputte Builds von Clang/LLVM im Internet - man merkt halt immer noch das der Compiler eigentlich Linux-only ist.

Die Infos von dir sind noch ein wenig dürftig. Es gibt so viele verschiedene Builds von Clang/LLVM, das macht es schwer.
Windows oder Linux? Welche Standard-Library (mingw oder die von clang oder die von gcc)?
Was für ein Zeilenumbruch ist denn in der Datei? \n oder \r\n ? Geht es wenn du ihn weglässt?
Geht es mit einer neuen Clang Version? 16.0.0 ist ja schon mehr als 2 Jahre alt, du solltest zumindest das Patchlevel aktuell halten (also 16.0.4, wenn es unbedingt 16 sein muss).

Für Windows kann ich das hier empfehlen: Clang/LLVM in Verbindung mit MinGW, das sind bei mir bisher die stabilsten builds:
https://github.com/mstorsjo/llvm-mingw
Benutzeravatar
starcow
Establishment
Beiträge: 577
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Wohnort: Zürich
Kontaktdaten:

Re: clang crash (PLEASE submit a bug report)

Beitrag von starcow »

Vielen Dank fürs Austesten Nytro!
Ich bin hier auf Windows unterwegs. Der Build stammt eigentlich direkt von der clang.llvm.org und die stdio.h ist vom Windows SDK.
Am Zeilenende ist ein LF ohne CR. Anscheinend hat es einfach mit der Grösse der stdio.h zutun. Wenn ich testweise einige Zeilen daraus entferne, verschwindet irgendwann der Fehler.
Ich werde mal versuchen eine neue Version von Clang zu installieren.
Der Bug hat für mich persönlich ja keine Konsequenzen. Es geht mir eher darum, ob sich der Bug (wie erbittet) überhaupt zu melden lohnt.
Freelancer 3D- und 2D-Grafik
mischaschaub.com
NytroX
Establishment
Beiträge: 410
Registriert: 03.10.2003, 12:47

Re: clang crash (PLEASE submit a bug report)

Beitrag von NytroX »

Hm, interessant, dann könnte es natürlich auch am Clang liegen.
Vermutlich lohnt es sich nur zu reporten, wenn es eine neuere Version auch betrifft.
Genau, dann versuche doch mal die aktuellste offizielle Version, und/oder die von meinem Link oben in der UCRT Version (dazu brauchst du dann auch kein Windows SDK o.ä. Abhängigkeiten, das macht dann auch so manche Lizenz-Sachen einfacher, wenn du mal Software veröffentlichen willst).

Wenn du es da auch reproduzieren kannst, dann macht es vielleicht Sinn einen Bug Report aufzumachen.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 607
Registriert: 05.07.2003, 11:17

Re: clang crash (PLEASE submit a bug report)

Beitrag von Lord Delvin »

Also bei der Kombination würde ich's nicht machen. Wenn du's unter Linux mit verbreiteter stdlib nicht nachvollziehen kannst wird's eher ignoriert werden. Hab auch einige solche "Fehler" in Clang gefunden und würde die meisten davon ehrlich gesagt auch nicht fixen, wenn ich dafür kein Geld bekäme. Das meiste was ich bis jetzt gefunden habe sind im Prinzip falsche Annahmen über das Verhalten von Frontends, was für clang selbst halt nicht passiert und frontends die clang zur Codegenerierung verwenden alle sind zu klein um wichtig zu sein oder sie können's selbst fixen.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 607
Registriert: 05.07.2003, 11:17

Re: clang crash (PLEASE submit a bug report)

Beitrag von Lord Delvin »

Wie es der Zufall will habe ich gerade das Gegenteil gemacht von dem was ich zuvor gesagt hatte: https://discourse.llvm.org/t/preventing ... eted/86519
Bin gespannt, ob da was rauskommt. Zumal ich vermutlich wirklich neue intrinsics für meinen use case bräuchte.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Antworten