commit | b2c058be23814881186b3cda2c317828b986c1aa | [log] [tgz] |
---|---|---|
author | Devin Jeanpierre <jeanpierreda@google.com> | Wed Sep 14 01:58:59 2022 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Sep 14 01:59:38 2022 -0700 |
tree | 4658aaa087da32035d0c8d2a30d5d5a0515f3aa7 | |
parent | 20de6de4b79afbdbdab5c664c3d23c97213ac9c1 [diff] |
Add more tests for reasons I remembered that it could be dangerous to pretend a type is `final`. Really, honestly, `string_view` is the best case for this! It has all the properties we'd want so that destroying it by value is -- maybe UB, but implementation-defined to be ok. It has no tail padding. It has no vtable. Its destructor is trivial, meaning in practice that it doesn't even do anything. On top of that, people rarely, if ever, inherit from it. Even if they did inherit from it, it's predominantly passed by value anyway. Anyway, this test should be reassuring, I hope. PiperOrigin-RevId: 474234757
Extremely experimental interop tooling for C++ and Rust.
Please don‘t use, this is an experiment and we don’t yet know where will it take us. There will be breaking changes without warning. Unfortunately, we can't take contributions at this point.
$ apt install clang lld bazel $ git clone git@github.com:google/crubit.git $ cd crubit $ bazel build --linkopt=-fuse-ld=/usr/bin/ld.lld //rs_bindings_from_cc:rs_bindings_from_cc_impl
$ git clone https://github.com/llvm/llvm-project $ cd llvm-project $ CC=clang CXX=clang++ cmake -S llvm -B build -DLLVM_ENABLE_PROJECTS='clang' -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install $ cmake --build build -j $ # wait... $ cmake --install build $ cd ../crubit $ LLVM_INSTALL_PATH=../llvm-project/install bazel build //rs_bindings_from_cc:rs_bindings_from_cc_impl