C++: Fix path checking cc_shared_library

We were returning false when checking whether //foo:bar is under
//:__subpackages__

RELNOTES:none
PiperOrigin-RevId: 307808962
Change-Id: I080e4c239b75c188dae8af89f4b38aa935d92b0d
diff --git a/examples/experimental_cc_shared_library.bzl b/examples/experimental_cc_shared_library.bzl
index 7b62d21..7d7fc37 100644
--- a/examples/experimental_cc_shared_library.bzl
+++ b/examples/experimental_cc_shared_library.bzl
@@ -242,9 +242,12 @@
     package_b_tokenized = label_b.package.split("/")
     if len(package_b_tokenized) < len(package_a_tokenized):
         return False
-    for i in range(len(package_a_tokenized)):
-        if package_a_tokenized[i] != package_b_tokenized[i]:
-            return False
+
+    if package_a_tokenized[0] != "":
+        for i in range(len(package_a_tokenized)):
+            if package_a_tokenized[i] != package_b_tokenized[i]:
+                return False
+
     return True
 
 def _cc_shared_library_impl(ctx):
diff --git a/examples/test_cc_shared_library/starlark_tests.bzl b/examples/test_cc_shared_library/starlark_tests.bzl
index f301498..76a9e00 100644
--- a/examples/test_cc_shared_library/starlark_tests.bzl
+++ b/examples/test_cc_shared_library/starlark_tests.bzl
@@ -63,6 +63,8 @@
     asserts.false(env, for_testing_dont_use_check_if_target_under_path(Label("@foo//bar"), Label("@foo//bar/baz:__subpackages__")))
     asserts.false(env, for_testing_dont_use_check_if_target_under_path(Label("//bar"), Label("//bar/baz:__pkg__")))
 
+    asserts.true(env, for_testing_dont_use_check_if_target_under_path(Label("//foo/bar:baz"), Label("//:__subpackages__")))
+
     return unittest.end(env)
 
 paths_test = unittest.make(_paths_test_impl)