[Bug 91320] The cure for all kinds of weirdness caused by list defects in release builds

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Jul 12 17:56:38 PDT 2015


            Bug ID: 91320
           Summary: The cure for all kinds of weirdness caused by list
                    defects in release builds
           Product: Mesa
           Version: git
          Hardware: Other
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: glsl-compiler
          Assignee: idr at freedesktop.org
          Reporter: tschwinger at isonews2.com
        QA Contact: intel-3d-bugs at lists.freedesktop.org

Created attachment 117080
  --> https://bugs.freedesktop.org/attachment.cgi?id=117080&action=edit
exec_list fix for optimizing compilers


Segfaulting and optimization passes that fail to terminate. Problems were
observed with both GCC and Clang.


None of it.


Optimizing compilers will ignore modification through the sentinel nodes cast
from the list structure.

Code like 

    while (! list.is_empty()) ... list.pop_head(); ...

breaks, because the compiler assumes that the list structure doesn't change.


Good old Amiga-style lists can still work with modern, optimizing compilers as
long as they are told to check for side effects on the sentinels' respective
next / prev pointers. See contained patch - it's actually quite simple and
should leave most optimizations intact.

You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20150713/26f2a133/attachment.html>

More information about the intel-3d-bugs mailing list