[llvm-bugs] [Bug 47620] New: Constexpr destructor support causes crash from unhandled cleanup
via llvm-bugs
llvm-bugs at lists.llvm.org
Tue Sep 22 19:58:42 PDT 2020
https://bugs.llvm.org/show_bug.cgi?id=47620
Bug ID: 47620
Summary: Constexpr destructor support causes crash from
unhandled cleanup
Product: clang
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: C++
Assignee: unassignedclangbugs at nondot.org
Reporter: smeenai at fb.com
CC: blitzrakete at gmail.com, dgregor at apple.com,
erik.pilkington at gmail.com, llvm-bugs at lists.llvm.org,
richard-llvm at metafoo.co.uk
$ cat reduced.cpp
template <class _Tp, _Tp __v> struct integral_constant {
static constexpr const _Tp value = __v;
};
using true_type = integral_constant<bool, true>;
using false_type = integral_constant<bool, false>;
struct is_constexpr_default_constructible_ {
template <typename T, int = (void(T()), 0)> static true_type sfinae(T *);
static false_type sfinae(void *);
template <typename T>
static constexpr bool apply =
decltype(sfinae(static_cast<T *>(nullptr)))::value;
};
template <typename T>
constexpr bool is_constexpr_default_constructible_v =
is_constexpr_default_constructible_::apply<T>;
struct NonTrivialDtor {
~NonTrivialDtor() {}
};
static_assert(!is_constexpr_default_constructible_v<NonTrivialDtor>, "");
$ clang -fsyntax-only reduced.cpp
Unhandled cleanup; missing full expression marker?
UNREACHABLE executed at
/home/smeenai/llvm-project/clang/lib/AST/ExprConstant.cpp:12730!
Bisects to 457226e02a6e
(https://github.com/llvm/llvm-project/commit/457226e02a6e). If you build the
compiler with assertions disabled it doesn't crash (even though the crash
itself doesn't look like an assertion failure).
--
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/20200923/da5b6aff/attachment.html>
More information about the llvm-bugs
mailing list