http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53123
Bug #: 53123 Summary: Double return statement in c-omp.c source file Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: guy_vaes...@hotmail.com /pub/gcc/snapshots/4.8-20120422/ Sourcefile gcc\c-family\c-omp.c Contains a second return statement on line 174 (first one on line 172) Orriginal code: line 170 x = build1 (OMP_ATOMIC_READ, type, addr); line 171 SET_EXPR_LOCATION (x, loc); line 172 return build_modify_expr (loc, v, NULL_TREE, NOP_EXPR, line 173 loc, x, NULL_TREE); line 174 return x; What I would expect (modified line 172): line 170 x = build1 (OMP_ATOMIC_READ, type, addr); line 171 SET_EXPR_LOCATION (x, loc); line 172 x = build_modify_expr (loc, v, NULL_TREE, NOP_EXPR, line 173 loc, x, NULL_TREE); line 174 return x; The second return statement will never be reached and should be eliminated.