Компилятор CUDA предупреждает о нераспознанной прагме GCC

В файле CUDA есть некоторый код C++, который использует эту прагму:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-result"
    void foobar()
    {
        // some code
    }
#pragma GCC diagnostic pop

Когда этот файл CUDA скомпилирован с использованием компилятора CUDA 5.5 nvcc, стадия компиляции хоста работает нормально, но стадия компиляции устройства выдает следующее предупреждение:

foobar.cu(420): warning: unrecognized GCC pragma

Похоже, компилятор CUDA понимает, что это прагма GCC. Я понятия не имею, почему он пытается понять все прагмы GCC. Есть ли способ исправить это предупреждение или убрать это предупреждение?

Обновление: обратите внимание, что передача параметра -Xcudafe "--diag_suppress=unrecognized_pragma" компилятору nvcc, похоже, не имеет никакого эффекта.


person Ashwin Nanjappa    schedule 01.04.2014    source источник
comment
возможный дубликат Как отключить предупреждения компилятора с помощью nvcc   -  person rubenvb    schedule 01.04.2014


Ответы (2)


Попробуй это:

-Xcudafe "--diag_suppress=unrecognized_gcc_pragma"
person 6EQUJ5    schedule 08.04.2014
comment
Спасибо! Это сработало. Могу я узнать, где мне искать такие флаги? В случае, если мне нужно игнорировать другое предупреждение в будущем :) - person Ashwin Nanjappa; 09.04.2014

Как показано в повторяющемся вопросе, вам необходимо передать следующий флаг в нвкк:

-Xcudafe "--diag_suppress=unrecognized_pragma"
person rubenvb    schedule 01.04.2014
comment
Спасибо за указание на эту опцию компилятора. Удивительно, но я все еще получаю предупреждение после того, как добавил это. - person Ashwin Nanjappa; 01.04.2014