aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorXun Li <lxfind@gmail.com>2021-04-18 15:41:09 -0700
committerXun Li <lxfind@gmail.com>2021-04-18 15:41:09 -0700
commitfa6b54c44ab1d5f579304eadb7ac8bd7e72d0e77 (patch)
tree91170e62bfa44a793690b5eeb9e75f3de0232eb9 /clang/lib/Frontend/CompilerInvocation.cpp
parentc0211e8d7d0b797fd11543c3d3f9fecf3b2069cf (diff)
downloadllvm-fa6b54c44ab1d5f579304eadb7ac8bd7e72d0e77.zip
llvm-fa6b54c44ab1d5f579304eadb7ac8bd7e72d0e77.tar.gz
llvm-fa6b54c44ab1d5f579304eadb7ac8bd7e72d0e77.tar.bz2
[Coroutines] Set presplit attribute in Clang instead of CoroEarly pass
Presplit coroutines cannot be inlined. During AlwaysInliner we check if a function is a presplit coroutine, if so we skip inlining. The presplit coroutine attributes are set in CoroEarly pass. However in O0 pipeline, AlwaysInliner runs before CoroEarly, so the attribute isn't set yet and will still inline the coroutine. This causes Clang to crash: https://bugs.llvm.org/show_bug.cgi?id=49920 To fix this, we set the attributes in the Clang front-end instead of in CoroEarly pass. Reviewed By: rjmccall, ChuanqiXu Differential Revision: https://reviews.llvm.org/D100282
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions