1. Foren
  2. Kommentare
  3. Security
  4. Alle Kommentare zum Artikel
  5. › GnuTLS: Fehlerhafte Zertifikate…

So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


  1. So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: MrSpok 04.03.14 - 14:18

    Fehler macht jeder.

    Aber sprätestens beim Kompilieren solchen Codes sollte doch wegen "Unreachable code" eine Warnung oder ein Fehler produziert werden.

    Schon merkwürdig, dass sowas durchgeht.

    [EDIT]:
    Sieht so aus, als wäre das "goto cleanup" durch "goto fail" ersetzt worden.
    Ich dachte erst, die GOTOs hätten hintereinander gestanden.
    Dann gibt's natürlich keine Compiler-Warnung.

    Aber wer benutzt heutzutage eigentlich nocht GOTOs? Naja, das ist ein anderes Thema ...



    1 mal bearbeitet, zuletzt am 04.03.14 14:25 durch MrSpok.

  2. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: zampata 04.03.14 - 14:30

    irgendwo gabs mal eine Untersuchung, dass sowohl GCC als auch Clang in den Standardeinstellungen gar keine Warnung für unreachable Code ausspucken.
    GCC sogar nicht, wenn man dies explizit anfordert

  3. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: TheUnichi 04.03.14 - 14:32

    MrSpok schrieb:
    --------------------------------------------------------------------------------
    > Aber wer benutzt heutzutage eigentlich nocht GOTOs? Naja, das ist ein
    > anderes Thema ...

    Da hat jemand mal mit VB rumgespielt und macht den Pro...

    Die meisten Low-Level Sprachen arbeiten mit GOTOs.

    Die Jumps in ASM sind auch GOTOs.

    GOTO ist die Basis für die prozedurale und objektorientierte Programmierung, die du betreibst.

    Der einzige Grund, warum man GOTO nicht nutzen sollte, ist, weil es fehleranfällig ist, bei Programmierern, die schnell die Übersicht verlieren.
    Verlierst du die Übersicht nicht, sind GOTOs durchaus ein sinnvolles Konstrukt und ab und an, gerade in Low-Level Sprachen auch durchaus mal notwendig.

  4. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: Dadie 04.03.14 - 14:35

    MrSpok schrieb:
    --------------------------------------------------------------------------------
    > Fehler macht jeder.
    >
    > Aber sprätestens beim Kompilieren solchen Codes sollte doch wegen
    > "Unreachable code" eine Warnung oder ein Fehler produziert werden.
    >
    > Schon merkwürdig, dass sowas durchgeht.
    >
    > :
    > Sieht so aus, als wäre das "goto cleanup" durch "goto fail" ersetzt
    > worden.
    > Ich dachte erst, die GOTOs hätten hintereinander gestanden.
    > Dann gibt's natürlich keine Compiler-Warnung.
    >
    > Aber wer benutzt heutzutage eigentlich nocht GOTOs? Naja, das ist ein
    > anderes Thema ...

    Zu "Unreachable code" siehe : http://blog.fefe.de/?ts=adf5a1ff
    Zu GoTo :
    Richtig eingesetzt kann ein GOTO eine gute Möglichkeit sein Code wartbar zu halten. Gerade in einer Sprache ohne OO ist das gar nicht so unüblich. Teilweise ist der Code auch einfach sehr alt und damals hat man GOTO eben benutzt. Warum über die Jahre getesteten Code umwerfen? Die Gefahr beim Umschreiben oder Neuschreiben neue Bugs in den Code einzufügen ist viel größer als die Gefahren durch GOTO. Der Fail in diesem Fall lag nicht am GOTO sondern einfach am "Denkfehler" des Programmierers der Codezeilen. Das wäre genau so auch ohne GOTO passiert. Der Fehler sähe dann nur ggf. anders aus.

  5. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: ralf.wenzel 04.03.14 - 14:38

    MrSpok schrieb:
    --------------------------------------------------------------------------------
    > Fehler macht jeder.

    Tja, wenn Apple sowas passiert, wird nicht so rücksichtsvoll reagiert, da war bei Facebook, bei Heise und auch hier der Bär los.

  6. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: fletschge 04.03.14 - 14:43

    Mit welcher Argumentation wird "unreachable code" im gcc nicht mehr abgefangen?
    Ist doch durchaus ein sinnvoller Check?

  7. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: M.P. 04.03.14 - 14:44

    Die neue Schule ist ein try / catch mit einem throw ... an der Stelle, wo jetzt das goto steht ;-)

    Das ist dann wieder die "reine Informatiker-Schule"

  8. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: thomas001le 04.03.14 - 14:47

    Wie willst du sonst sowas machen, außer mit goto in C:

    {
    if(!good) goto cleanup;
    ..
    if(!good2) goto cleanup;
    ..
    cleanup:
    long_cleanup_code();
    }

  9. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:47

    TheUnichi schrieb:
    > GOTO ist die Basis für die prozedurale und objektorientierte
    > Programmierung, die du betreibst.
    >

    Nicht wirklich, dafür gibts CALLs.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  10. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 14:50

    thomas001le schrieb:
    --------------------------------------------------------------------------------
    > Wie willst du sonst sowas machen, außer mit goto in C:
    >
    > {
    > if(!good) goto cleanup;
    > ..
    > if(!good2) goto cleanup;
    > ..
    > cleanup:
    > long_cleanup_code();
    > }

    {
    if(!good)
    {
    long_cleanup_code_in_a_function();
    return;
    }
    ...
    if(!good2)
    {
    long_cleanup_code_in_a_function();
    return;
    }
    ...
    long_cleanup_code_in_a_function();
    }

    Spricht was dagegen? Klar, Redundanzen, ansonsten umgeht man so gotos ohne try-catch-finally.

    Ok, aber manch einer ist halt nunmal stolz auf "Holzhacker-Programmierung".



    3 mal bearbeitet, zuletzt am 04.03.14 14:52 durch acuntex.

  11. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: M.P. 04.03.14 - 14:50

    Nunja, jedes Switch-Konstrukt, jedes "if" und alle Schleifen werden wahrscheinlich intern wohl NICHT mit Calls abgearbeitet...

  12. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:50

    {
    if(!good) {cleanup(); return;}
    ..
    if(!good2) {cleanup(); return;}
    ..
    cleanup();
    }

    void cleanup() {long_cleanup_code(); }

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  13. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: M.P. 04.03.14 - 14:52

    So viele "returns" in einer Funktion sind aber auch nicht gerade sauber ;-)

  14. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:52

    Wäre auch irgendwie sinnlos und teuer immer über den Stack zu gehen.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  15. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 14:53

    Genauso sauber wie gotos ;)

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  16. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 14:54

    bstea schrieb:
    --------------------------------------------------------------------------------
    > Wäre auch irgendwie sinnlos und teuer immer über den Stack zu gehen.

    Ja, das ganze ist ja sooo teuer, am besten den ganzen Code in die main() rein. Wie ich diese Urban Legends liebe.

  17. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 14:55

    bstea schrieb:
    --------------------------------------------------------------------------------
    > Genauso sauber wie gotos ;)


    Nein, lieber mehrere returns als gotos ;)

  18. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: rommudoh 04.03.14 - 14:56

    M.P. schrieb:
    --------------------------------------------------------------------------------
    > Die neue Schule ist ein try / catch mit einem throw ... an der Stelle, wo
    > jetzt das goto steht ;-)
    >
    > Das ist dann wieder die "reine Informatiker-Schule"


    Ähm, falsche Sprache!

  19. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: bstea 04.03.14 - 15:08

    Zusätzliches PUSH und POP ist bei dir nicht teuer? Du musst ein Genie sein.

    --
    Erst wenn der letzte Baum gefällt, der letzte Fluss gestaut und der letzte Fisch gefangen ist, werdet ihr feststellen, dass man Biber nicht essen kann!

  20. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: acuntex 04.03.14 - 15:18

    bstea schrieb:
    --------------------------------------------------------------------------------
    > Zusätzliches PUSH und POP ist bei dir nicht teuer? Du musst ein Genie sein.

    Don't get me wrong...
    Ich erinner mich sehr wohl an die Assembler-Vorlesungen und die Warnungen wie teuer doch Funktionsaufrufe seien.

    In der Realität ist dies jedoch irrelevant.
    Bloß weil ich an einer stelle im ns-Bereich sparen wollte, kriege ich es evtl. zurück durch Bugs, schlechtere Wartbarkeit durch die Verletzung der Grundprinzipien der Software-Entwicklung etc.

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Eckert & Ziegler Radiopharma GmbH, Braunschweig
  2. Dürr IT Service GmbH, Bietigheim-Bissingen
  3. Stadtwerke Heidelberg GmbH, Heidelberg
  4. Weisenburger Bau GmbH, Karlsruhe

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 41,99€
  2. (-80%) 2,99€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Golem on Edge: Wo Nachbarn alles teilen - auch das Internet
Golem on Edge
Wo Nachbarn alles teilen - auch das Internet

Mehr schlecht als recht arbeiten zu können und auch nur dann, wenn die Nachbarn nicht telefonieren - das war keine Dauerlösung. Wie ich endlich Internet in meine Datsche bekommen habe.
Eine Kolumne von Sebastian Grüner

  1. Digitalisierung Krankschreibung per Videosprechstunde wird möglich
  2. Golem on Edge Homeoffice im Horrorland
  3. Anzeige Die voll digitalisierte Kaserne der Zukunft

Indiegames-Rundschau: Stadtbaukasten trifft Tentakelmonster
Indiegames-Rundschau
Stadtbaukasten trifft Tentakelmonster

Traumstädte bauen in Townscaper, Menschen fressen in Carrion und Bilderbuchgrusel in Creaks: Die neuen Indiegames bieten viel Abwechslung.
Von Rainer Sigl

  1. Indiegames-Rundschau Licht aus, Horror an
  2. Indiegames-Neuheiten Der Saturnmond als galaktische Baustelle
  3. Indiegames-Rundschau Dunkle Seelen im Heavy-Metal-Rausch

Programmiersprache Go: Schlanke Syntax, schneller Compiler
Programmiersprache Go
Schlanke Syntax, schneller Compiler

Die objektorientierte Programmiersprache Go eignet sich vor allem zum Schreiben von Netzwerk- und Cloud-Diensten.
Von Tim Schürmann