我如何仅将标志性的NVCC Pragma应用于几行代码



我想应用特定的标志nvcc pragma,例如关闭noreturn_function_does_return类型的警告 - 但仅适用于我的某些功能。

现在,在此答案中,它说我应该能够写:

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

确实可以解决我的问题;除了推动和弹出没有起作用:我对这两个布拉格马被忽略了警告。另外,我无法弄清楚这应该如何影响其他警告标志(因为它是=而不是+=(

那么,有一种实际推动和弹出的方法吗?或至少 - 抑制然后取消抑制一定的警告?

注意:我在devuan ascii(〜= debian stretch(系统上使用CUDA 9.2.88 NVCC。

而无需详细介绍,并且使用CUDA的最新版本(9.2.88,10.x及以后( - 这应该可以解决:

#pragma diag_suppress = noreturn_function_does_return
... your code here ...
#pragma diag_default = noreturn_function_does_return

有关详细信息,请查看答案最初链接到的问题,该问题已更新...

最新更新