slavka012 0 7 октября, 2013 Опубликовано 7 октября, 2013 · Жалоба void Dummy(int* a) { *a = 0; }; void Test() { int* a = 0; Dummy(&a); }; Выдает варнинг, тогда как я бы хотел видеть в этом месте ошибку. Как переключить? test.c:1076:3: warning: passing argument 1 of 'Dummy' from incompatible p inter type [enabled by default] test_emac.c:873:6: note: expected 'int *' but argument is of type 'int **' Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neiver 0 7 октября, 2013 Опубликовано 7 октября, 2013 · Жалоба http://stackoverflow.com/questions/2287122...er-type-warning Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 7 октября, 2013 Опубликовано 7 октября, 2013 · Жалоба http://stackoverflow.com/questions/2287122...er-type-warning Это уже видел. Не работает, только если -Werror включить, но это будут все варнинги ошибками. Видимо так и поступлю, только не сразу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ixt 0 8 октября, 2013 Опубликовано 8 октября, 2013 · Жалоба Выдает варнинг, тогда как я бы хотел видеть в этом месте ошибку. Как переключить? Можно в конкретном месте ключи для конкретного кода переключать. Делается прагмами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 8 октября, 2013 Опубликовано 8 октября, 2013 · Жалоба Можно в конкретном месте ключи для конкретного кода переключать. Делается прагмами. А в чем смысл? Вы мне предлагаете вручную отлавливать ворнинги, потом их прагмами в ошибки переводить? Я может неточно выразился, я хотел сказать все подобные ситуации должны приводить к ошибке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ixt 0 8 октября, 2013 Опубликовано 8 октября, 2013 · Жалоба Да, предлагаю. Как я понял, вы готовы в некоторой мере на эту работу. Кстати, у Werror есть 2 метода использования. Возможно вам больше подойдёт второй: -Werror Make all warnings into errors. -Werror= Make the specified warning into an error. The specifier for a warning is appended, for example -Werror=switch turns the warnings controlled by -Wswitch into errors. This switch takes a negative form, to be used to negate -Werror for specific warnings, for example -Wno-error=switch makes -Wswitch warnings not be errors, even when -Werror is in effect. You can use the -fdiagnostics-show-option option to have each controllable warning amended with the option which controls it, to determine what to use with this option. Note that specifying -Werror=foo automatically implies -Wfoo. However, -Wno-error=foo does not imply anything. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 8 октября, 2013 Опубликовано 8 октября, 2013 · Жалоба Да, предлагаю. Как я понял, вы готовы в некоторой мере на эту работу. Это странное предложение, не имеющее ни малейшего практического смысла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lagman 1 9 ноября, 2013 Опубликовано 9 ноября, 2013 · Жалоба а где там ошибка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 9 ноября, 2013 Опубликовано 9 ноября, 2013 · Жалоба Функции вместо указателя на int (int*) передаётся указатель на указатель на int (int**). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lagman 1 19 ноября, 2013 Опубликовано 19 ноября, 2013 · Жалоба Функции вместо указателя на int (int*) передаётся указатель на указатель на int (int**). ну она и будет работать с адресом который ей передали, который содержит адрес указателя на переменную!? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 19 ноября, 2013 Опубликовано 19 ноября, 2013 · Жалоба Но функция - то работает с адресом int, а не указателя на int. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alx2 0 20 ноября, 2013 Опубликовано 20 ноября, 2013 · Жалоба Но функция - то работает с адресом int, а не указателя на int. Это нормально для языка C - там допустимо неявное приведение указателя к другому типу указываемого объекта. Поэтому только предупреждение. В языке C++ такое приведение не допускается - будет выдана ошибка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
federal 0 24 ноября, 2013 Опубликовано 24 ноября, 2013 · Жалоба ТС, когда такие вопросы задаешь, всегда указывай версию компилятора и аргументы сборки. по теме, спасет: -Werror -Wfatal-errors Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба по теме, спасет:-Werror -Wfatal-errors +1 Но можно и более избирательно: -Werror=foo Также, весьма полезными ключиками в контексте темы могут быть: -Wc++-compat -Wcast-qual Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться