[llvm-bugs] [Bug 33414] New: Clang goes into infinite loop during template instantiation while processing co_await expression

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Jun 12 04:43:00 PDT 2017


https://bugs.llvm.org/show_bug.cgi?id=33414

            Bug ID: 33414
           Summary: Clang goes into infinite loop during template
                    instantiation while processing co_await expression
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: lewissbaker at gmail.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 18619
  --> https://bugs.llvm.org/attachment.cgi?id=18619&action=edit
Preprocessed output of

Compile the attached preprocessor output with:
clang -x c++ -std=c++1z -fcoroutines-ts -fms-compatibility llvm_bug.ii

Seems to get stuck in an infinite loop inside
Sema::PerformPendingInstantiations().

It pulls a pending instantiation off the queue and calls
InstantiateFunctionDefinition().
However InstantiateFunctionDefinition() decides to defer instantiation (due to
late-parsed template?) and puts it back on the queue only to be picked up
immediately next time around the loop in PerformPendingInstantiations().

The particular template it is trying to instantiate is
coroutine_handle<task_promise>::promise() during compilation of a co_await
expression.

Built against code from github llvm-mirror:
llvm: 5db707b0ff5ce707a78082219658a999b6b6eaa3
clang: ff4214ddcfab9fd92c15cc01c9c2e17a8f6217ad

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170612/aa730385/attachment.html>


More information about the llvm-bugs mailing list