kein Warning bei abs(long int)

Gast #1773073
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__avr__stdlib.html#gdb8c83badc195efc1229799391fececc

labs() gefunden:
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ge017047d6d0a688ccb622ff062dcd230

fabs gibt's auch..
Persönliche Seite #1773135
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/gccintro_75.html

-v Option (v für verbose)
Gast #1773312
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_id=68108&func=browse';
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.