coverage: C++ fix loop in gcov_coverage_dump
During coverage reports generation in C++ code gcov_coverage_dump() function would get stuck in endless loop. Fix by checking list head pointer with current list pointer. Signed-off-by: Marko Poljanić <mpoljanic@gmail.com>
This commit is contained in:
parent
f06fec0ef7
commit
2b92ae308b
1 changed files with 4 additions and 0 deletions
|
@ -223,6 +223,7 @@ void gcov_coverage_dump(void)
|
|||
uint8_t *buffer;
|
||||
size_t size;
|
||||
size_t written_size;
|
||||
struct gcov_info *gcov_list_first = gcov_info_head;
|
||||
struct gcov_info *gcov_list = gcov_info_head;
|
||||
|
||||
k_sched_lock();
|
||||
|
@ -247,6 +248,9 @@ void gcov_coverage_dump(void)
|
|||
|
||||
k_heap_free(&gcov_heap, buffer);
|
||||
gcov_list = gcov_list->next;
|
||||
if (gcov_list_first == gcov_list) {
|
||||
goto coverage_dump_end;
|
||||
}
|
||||
}
|
||||
coverage_dump_end:
|
||||
printk("\nGCOV_COVERAGE_DUMP_END\n");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue