https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105323
Bug ID: 105323 Summary: Unused assignment does not get reported Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: floridsleeves at gmail dot com Target Milestone: --- Hi, I'm trying to compile C program using gcc 9.4.0. The C program is: #include<stdio.h> int foo(int a) { if(a==0) return 0; else return 1;//error } int main (int argc, char *arg[]) { int ret = 0; if(ret!=0) return 1; ret = foo(6); return 0; } The command I use to compile: gcc -Wunused test.c The assignment 'ret = foo(6);' is unused. However, it's not reported by gcc. Imagine if foo is a function that return error code to variable ret if it has issues to execute, the error code will be unchecked. And gcc currently does not even report such an unused assignment. Not sure it's a bug or implementation choice. Output from `gcc --version`: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0