Hallo! Ich verwende noch den WINAVR20100110 (avrgcc 4.3.3) und das AVRStudio 4.18 (seeehr alt, ich weiß) und auch die Arduino IDE 1.8.10. Wenn ich ein file in der Arduino IDE kompiliere, erhalte ich eine Warnung, wenn z.B in einer switch-Anweisung ein "break" fehlt (".. -Wimplicit-fallthrough .."); diese Warnung gibt's aber anscheinend nicht beim avrgcc 4.3.3 - gibt es da etwas ähnliches? NB - ich habe auch das internet diesbezüglich durchforstet - ohne Ergebnis
:
Bearbeitet durch User
Einen 10 Jahre alten Compiler! ich würde es stattdessen mal mit einem avrgcc update probieren.
Egonwalter M. schrieb: > diese Warnung gibt's aber anscheinend nicht > beim avrgcc 4.3.3 Ich behaupte mal dass du nur einen entsprechenden Warning-Level einstellen musst um auch hier eine Warning zu bekommen. Denn unter genau gleichen Bedingungen wirst du nicht compiliert haben. Wilhelm M. schrieb: > Einen 10 Jahre alten Compiler! Daran scheitert es sicherlich nicht, bei solch trivialen Fehlern.
https://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Warning-Options.html#Warning-Options Danach kennt der Compiler -Wswitch etc. Vielleicht hilft das ja. Oliver
Hallo Oliver S. Vielen Dank für Deine Hilfe: Oliver S. schrieb: > https://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Warning-Options.html#Warning-Options > > Danach kennt der Compiler -Wswitch etc. > > Vielleicht hilft das ja. > > Oliver Hat leider nichts geholfen, der Schalter -Wswitch warnt nicht bei einem fehlenden "break", geht wohl nur bei neueren Compilern - manchmal ist es ja gewollt, dass mehrere case-Fälle nicht durch "break" unterbrochen werden: case(1)..... case(2)..... case(3)..... break; case(4)..... diese Warnung kann man bei neueren Compilern auch verhindern. @ Fern Schätzer "Ich behaupte mal dass du nur einen entsprechenden Warning-Level einstellen musst um auch hier eine Warning zu bekommen." Genau aus diesem Grund habe ich hier gefragt. Ich muss wohl damit leben, dass der avrgcc 4.3.3 nicht dieses Warn-Level beinhaltet. Updaten - wäre 'ne Möglichkeit, wenn sichergestellt ist, dass DANACH mein AVRSTudio 4.18 genauso wie vor dem Update funktioniert - und da habe ich meine Zweifel. Ich habe hier/im internet einige Beiträge über AVRGCC - Updates gelesen und das hat nicht dazu beigetragen, dass ich updaten möchte.
Nun ja, jeder darf nach seiner Facon unglücklich werden. Oliver
Egonwalter M. schrieb: > Updaten - wäre 'ne Möglichkeit, wenn sichergestellt ist, dass DANACH > mein AVRSTudio 4.18 genauso wie vor dem Update funktioniert - und da > habe ich meine Zweifel. Alles lösbar: Beitrag "Avr Studio 4 und die neue AVR Toolchain - So funktionierts!"
Hallo Oliver S. “Nun ja, jeder darf nach seiner Facon unglücklich werden” So issues. Zum Glück. @Hmmm Den Artikel kenne ich, habe ich auch probiert - danach funktionierte das AVRStudio 4.18 nicht mehr korrekt und ich musste es neu installieren.
Für solche Fälle gibt es das Attribut
1 | [[fallthrough]]; |
welches man an Stelle eines absichtlich weggelassen
1 | break; |
hinschreibt. Benötigt etwas neueren C/C++-Compiler (IMHO mindestens avr-gcc 5.xx) im C++11-Modus. Sehr praktisch aber leider noch zu wenig bekannt. Nur für den gängigen Fall von mehreren leeren Cases wird [‍[fallthrough]] (wie bisher) nicht benötigt:
1 | case 3: //[[fallthrough]]; |
2 | case 4: tueIrgendwas(); break; |
3 | case 5: return magicObject.tuwas(); |
Hinter break und return ist [‍[fallthrough]] logischerweise Quatsch und illegal. Die gängigen Syntax-Highlighter können mit derartigen Doppel-Eckige-Klammer-Attributen (davon gibt's noch mehr) noch nichts anfangen.
:
Bearbeitet durch User
Henrik H. schrieb: > Für solche Fälle Thread nicht gelesen? Ich mein', der Thread ist schon so alt, dass du beim Absenden des Beitrags eine fette rote Warnmeldung bekommst – aber der im Thread diskutierte Compiler ist noch vieeeel älter. Dem hilft dein Attribut absolut gar nichts.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.