Commit 11ca3481 authored by Thiago Macieira's avatar Thiago Macieira
Browse files

Work around ICC optimizer bug hoisting conditions out of the loop


In the first iteration of the loop, span->objects is not null, but
becomes null and therefore the entry is removed from the list. When the
list is empty, the list header (nonempty_) has next == prev == self and
objects is null. So in the second iteration, DLL_IsEmpty should return
true.

Analysis of the assembly output indicates that the function DLL_IsEmpty
(DLL = "doubly linked list") was hoisted out of the loop and its
condition was never checked again.

Affects: 14.0.3 on Linux, 15 on OS X (EDG and Clang) and Linux
Does not affect: 14.0.3 on Windows

Intel issue ID: 6000056746
Change-Id: I4439f441d5206a39391b9181baf42160d37bd2f1
Reviewed-by: default avatarSimon Hausmann <simon.hausmann@digia.com>
parent 71f6dee8
No related merge requests found
Showing with 4 additions and 1 deletion
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment