使用clang 8的lambda表达式中的双重释放崩溃

jcm*_*jcm 8 c++ clang

当将std :: vector移至lambda表达式中并引发lambda表达式时,我在使用lang 8.0时遇到双重崩溃。其他编译器(例如gcc或clang 7)的可执行文件正在运行,没有错误。

我在代码中做非法行为吗?

template<typename F>
void myExecute(F&& f)
{
    f();
}

int main()
{
    try {
        std::vector<double> test = {0.0, 1.0};
        myExecute([v = std::move(test)]() {
            throw std::runtime_error("exception");
        });
    }
    catch (const std::exception& e) {
        std::cout << e.what() << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

在魔盒中尝试

jcm*_*jcm 0

与此同时,我在 llvm bugzilla 中找到了匹配的错误报告:

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

我现在确信这是一个编译器错误,而不是我的代码中的问题。