Forum: Compiler & IDEs AVR-gcc 7.3: gcc -Wunreachable-code option Ersatz?


von Egonwalter M. (heiner1234)


Lesenswert?

Hallo

Beim avr-gcc 4.3.3 gab's noch den Compiler-Schalter -Wunreachable-code, 
dieser wurde dann aber (leider) in späteren Versionen entfernt.
Schade, denn damit konnte man beim compilieren erkennen, welche 
Code-Teile nie durchlaufen werden und eine Fehlersuche wurde damit 
gewaltig erleichtert.

Gibt es beim avr-gcc 7.3 (der u.a. derzeit bei der Arduino IDE 1.8.13 
verwendet wird) eine adequate Option?

Wenn ja - welche und wo muss ich sie einfügen?

Ich habe schon die 
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options 
durchsucht, aber nichts gefunden.

Für Hinweise wäre ich dankbar!

von Bauform B. (bauformb)


Lesenswert?

Eine erste Spur:
https://stackoverflow.com/questions/17249934/why-does-gcc-not-warn-for-unreachable-code

Mit "arm-none-eabi-objdump -d -S" sollte man es sehen. Aber die Warnung 
war natürlich viel angenehmer.

von Egonwalter M. (heiner1234)


Lesenswert?

Bauform B. schrieb:
> Eine erste Spur:
> 
https://stackoverflow.com/questions/17249934/why-does-gcc-not-warn-for-unreachable-code
>
> Mit "arm-none-eabi-objdump -d -S" sollte man es sehen. Aber die Warnung
> war natürlich viel angenehmer.

Hallo Bauform B.

Vielen Dank für den link (hatte ich auch schon gefunden, konnte damit 
aber nichst anfangen).

Arduino IDE - wo ist das Makefile zu finden, wo ich diese Option 
"arm-none-eabi-objdump -d -S" hinzufügen muss?

von Klaus W. (mfgkw)


Lesenswert?

Das ist keine Option für den Compiler, sondern ein eigener 
Programmaufruf.

von Egonwalter M. (heiner1234)


Lesenswert?

Klaus W. schrieb:
> Das ist keine Option für den Compiler, sondern ein eigener
> Programmaufruf.

Hallo!

Vielen Dank für den Hinweis; das wusste ich nicht.

Wie auch immer, ich werde einfach "das Beste aus 2 Welten" nehmen - ich 
werde mit dem AVRStudio 4.18 (bei dem man ganz einfach die Compiler 
Options einstellen kann) zum Kompilieren nehmen (und die 
Warnungen/Fehler beseitigen) und danach nochmal mit der Arduino IDE 
1.8.13 meinen Code checken (und die Warnungen / Fehler beseitigen) und 
dann den kompilierten Code auf die Zielplattform übertragen.

Ich arbeite eh' z.Zt nur mit ATMega8, ATMega328 ( = UNO) und dem 
ATMega2560 ( = MEGA).

Damit ist für mich das Thema erledigt.

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
Noch kein Account? Hier anmelden.