aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
diff options
context:
space:
mode:
authorJavier Alvarez <javier.alvarez@allthingsembedded.net>2022-06-17 10:31:14 +0300
committerRoy Jacobson <roi.jacobson1@gmail.com>2022-06-17 10:35:01 +0300
commit5ea341d7c4f9cc4933adc04ff74d59e26ad2f306 (patch)
tree82233b0634c09d039fff93c70aff2ba584ef9746 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
parent880ac5189d638e2b46d63027bc39419262e139c2 (diff)
downloadllvm-5ea341d7c4f9cc4933adc04ff74d59e26ad2f306.zip
llvm-5ea341d7c4f9cc4933adc04ff74d59e26ad2f306.tar.gz
llvm-5ea341d7c4f9cc4933adc04ff74d59e26ad2f306.tar.bz2
[clang] Fix trivially copyable for copy constructor and copy assignment operator
From [class.copy.ctor]: ``` A non-template constructor for class X is a copy constructor if its first parameter is of type X&, const X&, volatile X& or const volatile X&, and either there are no other parameters or else all other parameters have default arguments (9.3.4.7). A copy/move constructor for class X is trivial if it is not user-provided and if: - class X has no virtual functions (11.7.3) and no virtual base classes (11.7.2), and - the constructor selected to copy/move each direct base class subobject is trivial, and - or each non-static data member of X that is of class type (or array thereof), the constructor selected to copy/move that member is trivial; otherwise the copy/move constructor is non-trivial. ``` So `T(T&) = default`; should be trivial assuming that the previous provisions are met. This works in GCC, but not in Clang at the moment: https://godbolt.org/z/fTGe71b6P Reviewed By: royjacobson Differential Revision: https://reviews.llvm.org/D127593
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h')
0 files changed, 0 insertions, 0 deletions