Как применить флаг nvcc pragma для установки флага только к нескольким строкам кода? - PullRequest
0 голосов
/ 17 мая 2019

Я хочу применить определенную установку флага ngcc pragma, скажем, отключить предупреждения типа noreturn_function_does_return - но только для определенной моей функции.

Теперь, в этот ответ здесьТАК , это говорит, что я должен быть в состоянии написать:

#pragma push
#pragma diag_suppress = noreturn_function_does_return
...
#pragma pop

, который действительно решил бы мои проблемы;за исключением того, что push и pop'ing не работают: я получаю предупреждение об игнорировании этих двух прагм.Кроме того, я не мог понять, как это должно влиять на другие предупреждающие флаги (так как это =, а не +=, я думаю)

Так есть ли реальный способ толкать и выталкивать?Или, по крайней мере - подавить, а затем снять подавление определенного предупреждения?

Примечание: я использую nccc CUDA 9.2.88 с gcc 6.3.0 в системе Devuan ASCII (~ = Debian Stretch).

1 Ответ

1 голос
/ 19 мая 2019

Не вдаваясь в подробности и с последними версиями CUDA (9.2.88, 10.x и более поздние) - это должно сработать:

#pragma diag_suppress = noreturn_function_does_return

... your code here ...

#pragma diag_default = noreturn_function_does_return

Для получения подробной информации, посмотрите ответ вопрос, изначально связанный с, который был обновлен ...

...