Mercurial > hg > CbC > CbC_llvm
view clang/test/CodeGenCXX/no-unique-address-2.cpp @ 206:f17a3b42b08b
Added tag before-12 for changeset b7591485f4cd
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 07 Jun 2021 21:25:57 +0900 |
parents | 1d019706d866 |
children | c4bab56944e8 |
line wrap: on
line source
// RUN: %clang_cc1 -std=c++2a %s -emit-llvm -o - -triple x86_64-linux-gnu | FileCheck %s struct TriviallyCopyable {}; struct NonTriviallyCopyable { NonTriviallyCopyable() = default; NonTriviallyCopyable(const NonTriviallyCopyable&) = default; NonTriviallyCopyable(NonTriviallyCopyable &&) {} }; struct Foo { int i; [[no_unique_address]] TriviallyCopyable m; [[no_unique_address]] NonTriviallyCopyable n; }; void call() { Foo foo; Foo foo2(static_cast<Foo&&>(foo)); } // The memcpy call should copy exact 4 bytes for member 'int i' // CHECK: define {{.*}} void @_ZN3FooC2EOS_ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* {{.+}}, i8* {{.+}}, i64 4, i1 false) // CHECK: call void @_ZN20NonTriviallyCopyableC2EOS_