仅在一次出现时抑制警告

时间:2012-05-06 18:17:05

标签: gcc

我正在编写一些操作系统代码,编译器不能理解,并在我的一个函数中编写:

void kernel_getpid()
{
        register unsigned int r0 asm("r0") = current_pid;
}

所以编译器抱怨:

Warning: Variable "r0" is not used

如何仅在文件中的这一点禁用警告? 我一般都希望有这些警告,所以我不想在全球范围内关闭它们,但在这一点上它变得很烦人,因为我无法做任何事情。

1 个答案:

答案 0 :(得分:1)

从版本4.2开始但在4.6之前,您可以使用以下内容。不幸的是,它会关闭文件中前一点的警告。

#pragma GCC diagnostic ignored "-Wunused-variable"
void kernel_getpid()
{
  register unsigned int r0 asm("r0") = current_pid;
}

对于4.6或更高版本,您可以推送和弹出诊断标志,因此您可以使用以下内容。

void kernel_getpid()
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"

  register unsigned int r0 asm("r0") = current_pid;
}
#pragma GCC diagnostic pop

您可以在GCC documentation或有关抑制GCC警告here的教程中阅读更多详细信息。