[llvm-bugs] [Bug 31049] New: [MS] Clang passes small objects with implicitly deleted copy constructors incorrectly on x64
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Nov 17 16:16:39 PST 2016
https://llvm.org/bugs/show_bug.cgi?id=31049
Bug ID: 31049
Summary: [MS] Clang passes small objects with implicitly
deleted copy constructors incorrectly on x64
Product: clang
Version: unspecified
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: LLVM Codegen
Assignee: unassignedclangbugs at nondot.org
Reporter: rnk at google.com
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
Consider:
struct A {
A();
A(A &&o) : a(o.a) {}
int a;
};
struct B {
B();
// B(B &&o);
A a;
int val;
};
int getit(B b) { return b.val; }
B's copy ctor is implicitly deleted, but the ABI code can't figure it out
because there isn't enough information in the AST right now.
Itanium has similar bugs. Fixing this in all cases will require a big overhaul
of how we track special member triviality, but it's probably worth doing in the
long run.
For now, we can probably add a workaround to MicrosoftCXXABI.cpp.
--
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/20161118/6532362e/attachment.html>
More information about the llvm-bugs
mailing list