www.mikrocontroller.net

Forum: Compiler & IDEs kein Warning bei abs(long int)


Autor: Adam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso gibt es kein Warning bei abs((int32_t) li[i])? Weil gcc-builtin?

Problem: Vergleich funktionierte nicht, weil ich ein int32_t mit abs() 
benutze.
http://www.nongnu.org/avr-libc/user-manual/group__...

labs() gefunden:
http://www.nongnu.org/avr-libc/user-manual/group__...

fabs gibt's auch..

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Adam schrieb:

> Wieso gibt es kein Warning bei abs((int32_t) li[i])? Weil gcc-builtin?

Vielleicht weil die betreffende Warnung in der gcc Kommandozeile per 
Option (1) ausgeschaltet ist.

Oder weil der Hersteller deiner Toolchain die betreffende Option zur 
Unterdrückung der Warnung mit einkompiliert hat. Dem kannst du 
nachgehen, wenn du dir die übergebenen Kommandozeilen anzeigen lässt 
(2).

(1) http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

Hier speziell die -Wconversion Option

"Warn for implicit conversions that may alter a value. This includes 
conversions ... to smaller types ..."

und die -Wtraditional-conversion

"Warn if a prototype causes a type conversion that is different from 
what would happen to the same argument in the absence of a prototype. 
This includes conversions ... changing the width or signedness of a 
fixed point argument except when the same as the default promotion."

(2) http://www.network-theory.co.uk/docs/gccintro/gcci...

-v Option (v für verbose)

Autor: Adam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhh, danke. Wird eigentlch nicht ausgeschaltet, -Wall ist Option der 
Wahl.

>avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ../gcc-4.3.3/configure 
--enable-win32-registry=WinAVR-20100110 --with-gmp=/usr/local 
--with-mpfr=/usr/local --prefix=/c/Win
AVR --target=avr --enable-languages=c,c++,objc --with-dwarf2 
--enable-doc --disable-shared --disable-libada --disable-libssp 
--disable-nls -
-with-pkgversion='WinAVR 20100110' 
--with-bugurl='URL:http://sourceforge.net/tracker/?atid=520074&group_...
Thread model: single
gcc version 4.3.3 (WinAVR 20100110)

Aber das Problem ist ja nun entdeckt und behoben (dank Warnung in einer 
anderen Funktion), daher lohnt es sich für mich nicht, das Verhalten mal 
in einem "testcase"  zu reproduzieren.
Aber wieder ein paar Schalter kennengelernt :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.