我正在编写一些编译器不理解的操作系统代码,并且在我的一个函数中我这样做:
void kernel_getpid()
{
register unsigned int r0 asm("r0") = current_pid;
}
所以编译器抱怨:
Warning: Variable "r0" is not used
如何仅在文件中的这一点禁用警告?我通常希望收到这些警告,所以我不想在全局范围内关闭它们,但此时它变得很烦人,因为我对此无能为力。
我正在编写一些编译器不理解的操作系统代码,并且在我的一个函数中我这样做:
void kernel_getpid()
{
register unsigned int r0 asm("r0") = current_pid;
}
所以编译器抱怨:
Warning: Variable "r0" is not used
如何仅在文件中的这一点禁用警告?我通常希望收到这些警告,所以我不想在全局范围内关闭它们,但此时它变得很烦人,因为我对此无能为力。
从版本 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