rs_bindings_from_cc: Add reproducer that a Crubit-enabled cc_library cannot include a header from a cc_library named 'core'.

Even when the cc_library named 'core' doesn't have Crubit enabled.

C++ libraries named `core` causes this problem to manifest because Crubit generates assertions that reference Rust `core` crate for C++ record.

PiperOrigin-RevId: 584545241
Change-Id: Ib6f952a2781c03b910d8afaf82fd6601aaf9853b
diff --git a/bazel/llvm.bzl b/bazel/llvm.bzl
index 832e438..05a657c 100644
--- a/bazel/llvm.bzl
+++ b/bazel/llvm.bzl
@@ -58,7 +58,7 @@
     new_git_repository(
         name = "llvm-raw",
         build_file_content = "# empty",
-        commit = "LLVM_COMMIT_HASH_TO_BE_POPULATED_BY_COPYBARA",
+        commit = "56f569049c9df7e4db6aa14eae6c4fe200350bf6",
         remote = "https://github.com/llvm/llvm-project.git",
     )
 
diff --git a/rs_bindings_from_cc/test/cpp_reserved_target_name/BUILD b/rs_bindings_from_cc/test/cpp_reserved_target_name/BUILD
new file mode 100644
index 0000000..a18e8d5
--- /dev/null
+++ b/rs_bindings_from_cc/test/cpp_reserved_target_name/BUILD
@@ -0,0 +1,17 @@
+load("//common:crubit_wrapper_macros_oss.bzl", "crubit_rust_test")
+
+package(default_applicable_licenses = ["//:license"])
+
+crubit_rust_test(
+    name = "test",
+    srcs = ["test.rs"],
+    cc_deps = [
+        "//rs_bindings_from_cc/test/cpp_reserved_target_name/subdir2:core",
+    ],
+    tags = [
+        # b/312438838: It currently fails with "failed to resolve: could not find `prelude` in `core`".
+        "manual",
+        "nobuilder",
+        "notap",
+    ],
+)
diff --git a/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1/BUILD b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1/BUILD
new file mode 100644
index 0000000..70ca4fb
--- /dev/null
+++ b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1/BUILD
@@ -0,0 +1,11 @@
+package(default_applicable_licenses = ["//:license"])
+
+# Intentionally not use crubit_cc_library, which enables Crubit on the target, to demonstrate that
+# having a non-Crubit-enabled dependency named "core" is enough to cause build error.
+cc_library(
+    name = "core",
+    hdrs = ["header.h"],
+    visibility = [
+        "//rs_bindings_from_cc/test/cpp_reserved_target_name:__subpackages__",
+    ],
+)
diff --git a/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1/header.h b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1/header.h
new file mode 100644
index 0000000..7e521d1
--- /dev/null
+++ b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1/header.h
@@ -0,0 +1,8 @@
+// Part of the Crubit project, under the Apache License v2.0 with LLVM
+// Exceptions. See /LICENSE for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+#ifndef THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_TEST_CPP_RESERVED_TARGET_NAME_SUBDIR1_HEADER_H_
+#define THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_TEST_CPP_RESERVED_TARGET_NAME_SUBDIR1_HEADER_H_
+
+#endif  // THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_TEST_CPP_RESERVED_TARGET_NAME_SUBDIR1_HEADER_H_
diff --git a/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir2/BUILD b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir2/BUILD
new file mode 100644
index 0000000..0d32c09
--- /dev/null
+++ b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir2/BUILD
@@ -0,0 +1,14 @@
+load("//rs_bindings_from_cc/test:test_bindings.bzl", "crubit_test_cc_library")
+
+package(default_applicable_licenses = ["//:license"])
+
+crubit_test_cc_library(
+    name = "core",
+    hdrs = ["header.h"],
+    visibility = [
+        "//rs_bindings_from_cc/test/cpp_reserved_target_name:__subpackages__",
+    ],
+    deps = [
+        "//rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1:core",
+    ],
+)
diff --git a/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir2/header.h b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir2/header.h
new file mode 100644
index 0000000..514a898
--- /dev/null
+++ b/rs_bindings_from_cc/test/cpp_reserved_target_name/subdir2/header.h
@@ -0,0 +1,12 @@
+// Part of the Crubit project, under the Apache License v2.0 with LLVM
+// Exceptions. See /LICENSE for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+#ifndef THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_TEST_CPP_RESERVED_TARGET_NAME_SUBDIR2_HEADER_H_
+#define THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_TEST_CPP_RESERVED_TARGET_NAME_SUBDIR2_HEADER_H_
+
+#include "rs_bindings_from_cc/test/cpp_reserved_target_name/subdir1/header.h"  // IWYU pragma: keep
+
+struct SubDir2 final {};
+
+#endif  // THIRD_PARTY_CRUBIT_RS_BINDINGS_FROM_CC_TEST_CPP_RESERVED_TARGET_NAME_SUBDIR2_HEADER_H_
diff --git a/rs_bindings_from_cc/test/cpp_reserved_target_name/test.rs b/rs_bindings_from_cc/test/cpp_reserved_target_name/test.rs
new file mode 100644
index 0000000..93a2dd4
--- /dev/null
+++ b/rs_bindings_from_cc/test/cpp_reserved_target_name/test.rs
@@ -0,0 +1,10 @@
+// Part of the Crubit project, under the Apache License v2.0 with LLVM
+// Exceptions. See /LICENSE for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn test_build() {}
+}