Der größte Bug des gcc ist folgendes
-
asdfasdf schrieb:
Du beschreibst hier aber einen anderen Fall. Es macht einen Unterschied, ob ein übergebenes source file oder ein belibeiges (wie ein make file) überschrieben wird.
Ich halte das "Problem" für zu irrelevant. Das kommt praktisch nicht vor. Mag nicht sehen, daß jemand diese doch recht nutzlose for/if einbaut, das dann eh nicht ausreicht, sondern nur die Hälfte der Fälle abdeckt wegen nichtkanonischer Pfade, symlinks, mounts
-
Ich stimme dir zu. Aber als reine DAU-Kontrolle würde ich eine Änderung in diesem konkreten Fall dennoch nicht sehen.
PS: clang verhält sich gleich.
-
asdfasdf schrieb:
Es gibt übrigens auch einen Bug report dazu: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36312
Danke, der Bugreport beweist, dass dies öfters vorkommt und auch schon andere diese Erfahrung machen durften.
Es ist bedauerlich, dass dieser Bug schon seit 2008 gemeldet wurde und sich bis heute nichts getan hat.
Das ist ne Chance sogar für Programmieranfänger endlich mal in den Credits des gcc zu stehen.
Und diejenigen die gegen so eine Prüfung der Zieldatei sind, die sollten mal bei ihrem Editor die Prüfung entfernen, ob die Datei beim beendet noch schnell gespeichert werden soll. Das fragt nämlich jeder gute Editor nach, aber die Leute hier, die scheinen so etwas nicht zu brauchen, also entfernt das!
-
Katastrophe schrieb:
Und diejenigen die gegen so eine Prüfung der Zieldatei sind, die sollten mal bei ihrem Editor die Prüfung entfernen, ob die Datei beim beendet noch schnell gespeichert werden soll. Das fragt nämlich jeder gute Editor nach, aber die Leute hier, die scheinen so etwas nicht zu brauchen, also entfernt das!
ABspecihern vergessen, kam mir schon öfters vor.
Aber Dein Bedienfehler echt noch nie.
-
Ist doch trivial, einen wrapper um gcc zu verwenden, wenn man sich gegen so etwas absichern will.
-
volkard schrieb:
ABspecihern vergessen, kam mir schon öfters vor.
Tja, ein typischer Fall von PEBKAC.
Das Problem sitzt zwischen Stuhl und Bildschirm, so etwas vergisst man nicht und wenn man es vergisst, dann sollte man vielleicht doch lieber gänzlich die Finger von Computern lassen. Das weiß man doch.
-
Katastrophe schrieb:
volkard schrieb:
ABspecihern vergessen, kam mir schon öfters vor.
Tja, ein typischer Fall von PEBKAC.
Das Problem sitzt zwischen Stuhl und Bildschirm, so etwas vergisst man nicht und wenn man es vergisst, dann sollte man vielleicht doch lieber gänzlich die Finger von Computern lassen. Das weiß man doch.Du darfst jetzt drüber nachdenken, wie man Abspeichern vergessen kann, denn alle Editoren fragen ja nach, wenn man sie schließt.
-
Immer in dem Moment, in dem so eine Meldung aufpoppt.
Diese sagt nämlich auch aus, dass du es manuell nicht gemacht und vergessen hast.
Hast du es manuell gemacht, dann poppt da bei guten Editoren nämlich nichts auf.Das manuelle nicht speichern zeigt nämlich auch, dass du die Daten seit der letzten Änderung auch dann verlieren könntest, wenn der Rechner einfach abstürzt.
Wie weit dein letzter manueller Speichervorgang zurückliegt ist also auch ein Maß für deine Vergesslichkeit.
-
Katastrophe schrieb:
dass du die Daten seit der letzten Änderung auch dann verlieren könntest,
Korrektur:
Seit der letzten Speicherung.
-
denkbar wäre, ein Kommando Gcc zu definieren, welches gcc aufruft, wenn in den Argumenten nicht so etwas wie -o bla.c vorkommt.
Gcc(){ echo -n "$@" | /bin/egrep -q '\-o[[:space:]]+.*\.c' || gcc "$@"; }
Achtung: die obige Zeile ist keine "wasserdichte" Lösung, sondern nur mal schnell hingekritzelt, um das *Prinzip* zu veranschaulichen, wie ein Schutz vor der eigenen Schusseligkeit aussehen kann.
-
Ist doch voll umständlich jedesmal die lange Zeile einzugeben...
-
*facepalm*
-
Toll schrieb:
Ist doch voll umständlich jedesmal die lange Zeile einzugeben...
... aber vielleicht kürzer, als main.c nach "ony-way-Kompilierung" mit -o main.c neu einzutippen
scherz beiseite: schon mal was von .bashrc gehört ?
-
so eine abfrage im gcc wäre nicht nur unsinn sondern auch falsch.
schließlich könnte die die datei ja sonst was sein:gcc /dev/irgendwas -o /dev/irgendwas
kommt vermutlich auch eher selten vor, wäre aber eine typische situation wo die gut gemeinte intelligenz der software am ende nur jemanden behindert.
-
radiopot schrieb:
so eine abfrage im gcc wäre nicht nur unsinn sondern auch falsch.
schließlich könnte die die datei ja sonst was sein:gcc /dev/irgendwas -o /dev/irgendwas
kommt vermutlich auch eher selten vor, wäre aber eine typische situation wo die gut gemeinte intelligenz der software am ende nur jemanden behindert.
Dazu kommt, dass unter Linux auch noch symlinks, -oloop mounts usw. existieren, über die man verschleiern kann, dass zwei Dateien eigentlich ein und die selbe sind.
Wenn man das alles überprüfen wöllte....
-
radiopot schrieb:
so eine abfrage im gcc wäre nicht nur unsinn sondern auch falsch.
schließlich könnte die die datei ja sonst was sein: gcc /dev/irgendwas -o /dev/irgendwasLOL
-
DrakoXP schrieb:
Dazu kommt, dass unter Linux auch noch symlinks, -oloop mounts usw. existieren, über die man verschleiern kann, dass zwei Dateien eigentlich ein und die selbe sind.
Wenn man das alles überprüfen wöllte....
Nein, wollte man nicht. Man will nur zufällige triviale verschreiber abfangen.