Missing End Task

Occurs when a task-begin annotation is executed but the corresponding task-end annotation is not executed before the site, thread, or application exits.

Problem type: Missing end task

ID

Code Location

Description

1

Task start

Represents the location and associated call stack when the task began execution.

2

Parallel site

If present, represents the location and associated call stack of the beginning of the parallel site that contained the task.

Example

void main()
{
    ANNOTATE_SITE_BEGIN(site_name);
        ANNOTATE_TASK_BEGIN(taskname1);
    ANNOTATE_SITE_END();
}

This example lacks an end-task annotation, ANNOTATE_TASK_END().

Note

An error also occurs if your code branches around a single ANNOTATE_TASK_END() annotation.

Possible Correction Strategies

Always execute an ANNOTATE_TASK_BEGIN(taskname) annotation before executing an ANNOTATE_SITE_END() annotation. This omission can be caused by throw exceptions, return, break, continue, and goto statements or keywords. All control flow paths out of a site need to use the ANNOTATE_TASK_END() annotations.

For more complete information about compiler optimizations, see our Optimization Notice.