[llvm-bugs] [Bug 39232] New: Regression: std::variant is not a	literal type
    via llvm-bugs 
    llvm-bugs at lists.llvm.org
       
    Tue Oct  9 11:04:47 PDT 2018
    
    
  
https://bugs.llvm.org/show_bug.cgi?id=39232
            Bug ID: 39232
           Summary: Regression: std::variant is not a literal type
           Product: libc++
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: ldionne at apple.com
                CC: llvm-bugs at lists.llvm.org, mclow.lists at gmail.com,
                    richard-llvm at metafoo.co.uk
The following program does not compile under Clang ToT:
================================================
#include <variant>
struct ValueBase {
protected:
    constexpr ValueBase() noexcept { }
    constexpr ValueBase(ValueBase const&) noexcept { }
    constexpr ValueBase(ValueBase&&) noexcept { }
};
struct NoCtors : ValueBase {
    NoCtors() = delete;
    NoCtors(NoCtors const&) = delete;
};
int main() {
    using V = std::variant<int, NoCtors>;
    constexpr V v;
}
================================================
Live reproduction: https://wandbox.org/permlink/b0trjzltSeq2Hirb
This reproducer was lifted from libc++'s test case
test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp. It
started failing with Clang's r343131:
Author: Richard Smith <richard-llvm at metafoo.co.uk>
Date:   Wed Sep 26 19:00:16 2018 +0000
    P1008R1 Classes with user-declared constructors are never aggregates in
    C++20.
-- 
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/20181009/2c1b8737/attachment-0001.html>
    
    
More information about the llvm-bugs
mailing list