https://bugs.llvm.org/show_bug.cgi?id=47926
Bug ID: 47926
Summary: Variable of dependent non-literal type in constexpr
not correctly diagnosed
Product: clang
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: enhancement
Priority: P
Component: C++2a
Assignee: unassignedclangb...@nondot.org
Reporter: ca...@carter.net
CC: blitzrak...@gmail.com, erik.pilking...@gmail.com,
llvm-bugs@lists.llvm.org, richard-l...@metafoo.co.uk
This TU:
template <class T>
constexpr bool f() {
if (!__builtin_is_constant_evaluated()) {
[[maybe_unused]] T t;
}
return true;
}
struct nonliteral {
~nonliteral() {}
};
static_assert(f<nonliteral>(), "should fail");
is ill-formed per N4868 [dcl.constexpr]/3.5.3 "The definition of a constexpr
function shall satisfy the following requirements:... its function-body shall
not enclose... a definition of a variable of non-literal type ...". Clang fails
to diagnose this TU (https://godbolt.org/z/xoMGxs).
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs