Testcase:
import Cpp inline "struct X {};";
fn Run() {
var x: Cpp.X = {};
}
This fails to link with an undefined reference to X::~X. The problem is that the toolchain is generating a call to a trivial destructor, and Clang expects that trivial destructors are never called so doesn't generate definitions for them. Presumably we should avoid calling the C++ destructor in the case where it's trivial, perhaps by synthesizing a "no_op" builtin as Destroy.Op for X instead of a thunk that calls the C++ destructor.