Я использую файл заголовка, который предоставляет встроенные функции. Эти функции не всегда сохраняются в отношении проверки GCC -Wconversion.
Теперь я хочу использовать проверку -Wconversion для моего кода, но хочу подавить предупреждение, которое я получаю для включаемого файла. Изменить: Когда я просто добавляю проверку преобразования в параметры компилятора, я получаю диагностику, а опускание -Wconversion дает мне чистый запуск компилятора.
В соответствии с этим вопросом я окружил включить с некоторыми прагмами:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#include <lpc177x_8x_crc.h>
#pragma GCC diagnostic pop
К сожалению, это не подавляет предупреждения.
warning: conversion to 'int32_t' from 'uint32_t' may change the sign of the result [-Wsign-conversion]
Для простой проверки вы даже можете попробовать это, если у вас нет CMSIS:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
int32_t foo(void)
{
uint32_t result;
return result;
}
#pragma GCC diagnostic pop
Аргументы командной строки компилятора:
arm-none-eabi-gcc.exe -mthumb -Wshadow -Winit-self -Wredundant-decls -Wcast-align -Wunreachable-code -W -Wextra -Wall -Wformat=0 -Wconversion -g -O0 -ffunction-sections -fdata-sections -g3 -mcpu=cortex-m3 -c foo.c -o foo.o
Я использую версию arm-none-abi-gcc:
gcc version 4.7.3 20121207 (release) [ARM/embedded-4_7-branch revision 194305] (GNU Tools for ARM Embedded Processors)