Poszukiwana flaga w gcc

Poszukiwana flaga w gcc
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć,

znacie może jakąś flagę gcc, która pokaże ostrzeżenie związane z przycinaniem wartości podczas deklaracji zmiennej połączonej z inicjalizacją?

Przykład:

Kopiuj
int array[5] = {1, -3, 5, 10, 4};
int size_array = sizeof(array) / sizeof(*array);

Wytłumaczenie:
wyrażenie po prawej stronie ma wartość: 5 * 4B / 4B = 5 (typy: unsigned long / unsigned long = unsigned long),
mamy deklarację jako int, więc wymuszenie typu poprzez przycięcie z 8B do 4B (możliwa więc strata informacji).

Próbowałem:
-Wall, -Wextra, -Wconversion, ale nie łapią tego.

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5027
0

Zobacz tutaj:

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

Spróbuj innych kompilatorow, są też narzędzia do statycznej analizy kodu.

PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

GCC wyświetla ostrzeżenie dopiero jak wartość przekroczy zakres zmiennej lub wartość przypisania nie jest znana podczas kompilacji.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.