“'long double' 在设备代码中被视为'double'”的 NVCC 警告标记是什么?

问题描述

在这个问题中:

How to disable a specific nvcc compiler warnings

一个链接一个很长的“字典”映射令牌到错误消息,这似乎适合 NVCC ......除了它没有涵盖所有警告。具体来说,我想压制

warning: 'long double' is treated as 'double' in device code

...而且那个警告不在那里。它的令牌是什么?或者 - 我如何确定给定警告字符串的令牌?

注意:AFAICT,不是

"double" used for "long double" in generated C code

非常相似。

解决方法

那个警告的编号是20208;因此,如果您将以下内容附加到编译命令行,它将被抑制:

-Xcudafe --diag_suppress=20208

感谢 this answer 我发现了这一点,它解释了如何让 NVCC 发出警告号码。

但是 - 这不起作用:

#pragma diag_suppress = 20208

所以在代码中按数字抑制错误的语法必须不同。


注意:不要将 diag-suppress 误认为 diag_suppress