http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53414
Bug #: 53414 Summary: gcov does not generate 'Lines' record for final block of functions Classification: Unclassified Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: gcov-profile AssignedTo: unassig...@gcc.gnu.org ReportedBy: myron.wal...@gmail.com GCC does not add a Lines record for the final line of code in functions with a return with if statements having multiple branches. Examples This code has a lines marking the end of the function: 01: int global_value = 0; 02: 03: void graph_simplebranch(int taken) 04: { 05: if(taken > 0) 06: { 07: global_value = global_value + 1; 08: } 09: } This code does not get a lines record generated for the block that is the end of the function. 01: int global_value = 0; 02: 03: void graph_multiplebranches(int pathSelect) 04: { 05: if(pathSelect == 0) 06: { 07: global_value = global_value + 1; 08: } 09: else if(pathSelect == 1) 10: { 11: global_value = global_value + 2; 12: } 13: else 14: { 15: global_value = global_value + 3; 16: } 17: 18: return; 19: }