Как видно из названия, есть ли способ заставить GCC предупредить меня, когда я сделаю что-то вроде этого:
void do_something(int* ptr) { // do something } int main() { int a = 123; void* b = &a; // WARN HERE: do_something(b); }
Используйте -Wc++-compat.Из руководства GCC :
-Wc++-compat
-Wc ++ - compat (только C и Objective-C) Предупреждать о конструкциях ISO C, которые находятся за пределами общего подмножестваISO C и ISO C ++, например, запрос на неявное преобразование из void * в указатель на не void тип.
-Wc ++ - compat (только C и Objective-C)
Предупреждать о конструкциях ISO C, которые находятся за пределами общего подмножестваISO C и ISO C ++, например, запрос на неявное преобразование из void * в указатель на не void тип.
Две причины, почему ответ, вероятно, нет :
Это было бы довольно раздражающим в других контекстахнапример,
int *array = malloc(5 * sizeof(*array)).
int *array = malloc(5 * sizeof(*array))