// RUN: %clang_cc1 -std=c++17 -emit-llvm -triple x86_64-linux-gnu -o - %s | FileCheck %s void doSomething(); struct A { A() {}; ~A() noexcept { doSomething(); } A & operator=(A a) & noexcept { return *this; } }; template struct B { void test() {a = {};} // CHECK: define linkonce_odr void @_ZN1BIiE4testEv // CHECK: call void @_ZN1AC1Ev(ptr noundef nonnull align 1 dereferenceable(1) // CHECK: [[CALL:%.*]] = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNR1AaSES_ // CHECK: call void @_ZN1AD2Ev(ptr noundef nonnull align 1 dereferenceable(1) A a; }; void client(B &f) {f.test();}