Poszukiwana flaga w gcc

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:

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.

0

Zobacz tutaj:

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

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

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1