предупреждение: отключено расширение рекурсивного макроса

Я в настоящее время строю GDCM использование проекта MacOSX компилятор по умолчанию: clang, Этот компилятор вызывает предупреждение в своем собственном заголовке (см. ссылка):

In file included from /Users/builder/external/GDCM/Source/MediaStorageAndFileFormat/gdcmJPEG12Codec.cxx:21:
/Users/builder/external/GDCM/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:336:9: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
if (setjmp(jerr.setjmp_buffer))
^
/Users/builder/llvm/llvm-rel-install/bin/../include/c++/v1/setjmp.h:40:21: note: expanded from macro 'setjmp'
#define setjmp(env) setjmp(env)
^
In file included from /Users/builder/external/GDCM/Source/MediaStorageAndFileFormat/gdcmJPEG12Codec.cxx:21:
/Users/builder/external/GDCM/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:724:9: warning: disabled expansion of recursive macro [-Wdisabled-macro-expansion]
if (setjmp(jerr.setjmp_buffer))
^
/Users/builder/llvm/llvm-rel-install/bin/../include/c++/v1/setjmp.h:40:21: note: expanded from macro 'setjmp'
#define setjmp(env) setjmp(env)
^
2 warnings generated.

Это либо явная ошибка в заголовке llvm (в которую мне трудно поверить), либо я что-то упускаю из-за использования setjmp в C++98,

2

Решение

Это ни то, ни другое. Это не ошибка в заголовке LLVM, не то, что вы что-то упускаете из-за использования setjmpэто то, что вы включили предупреждение, которое также срабатывает на совершенно правильный код. Большинство предупреждений делают. Вот почему это скорее предупреждения, чем ошибки. Это конкретное предупреждение чаще всего срабатывает на допустимом коде. Вот почему он не включен по умолчанию, даже не включен в -Wallи даже не включены в -Wextra, Тем не менее вы включили его в любом случае. Это хорошо, но тогда вы должны быть готовы разобраться с результатами.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]