[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