CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
161 lines
3.6 KiB
Plaintext
161 lines
3.6 KiB
Plaintext
# REQUIRES: target-windows
|
|
|
|
# Test namespace lookup.
|
|
# RUN: split-file %s %t
|
|
# RUN: %build --nodefaultlib -o %t.exe -- %t/main.cpp
|
|
# RUN: %lldb -f %t.exe -s \
|
|
# RUN: %t/commands.input 2>&1 | FileCheck %s
|
|
|
|
#--- main.cpp
|
|
|
|
struct S {
|
|
char a[1];
|
|
};
|
|
|
|
namespace Outer {
|
|
|
|
struct S {
|
|
char a[2];
|
|
};
|
|
|
|
namespace Inner1 {
|
|
struct S {
|
|
char a[3];
|
|
};
|
|
|
|
namespace Inner2 {
|
|
struct S {
|
|
char a[4];
|
|
};
|
|
} // namespace Inner2
|
|
} // namespace Inner1
|
|
|
|
namespace Inner2 {
|
|
struct S {
|
|
char a[5];
|
|
};
|
|
} // namespace Inner2
|
|
|
|
namespace {
|
|
struct A {
|
|
char a[6];
|
|
};
|
|
} // namespace
|
|
|
|
} // namespace Outer
|
|
|
|
namespace {
|
|
struct A {
|
|
char a[7];
|
|
};
|
|
} // namespace
|
|
|
|
int main(int argc, char **argv) {
|
|
S s;
|
|
Outer::S os;
|
|
Outer::Inner1::S oi1s;
|
|
Outer::Inner1::Inner2::S oi1i2s;
|
|
Outer::Inner2::S oi2s;
|
|
A a1;
|
|
Outer::A a2;
|
|
return sizeof(s) + sizeof(os) + sizeof(oi1s) + sizeof(oi1i2s) + sizeof(oi2s) + sizeof(a1) + sizeof(a2);
|
|
}
|
|
|
|
#--- commands.input
|
|
|
|
b main
|
|
r
|
|
|
|
type lookup S
|
|
type lookup ::S
|
|
type lookup Outer::S
|
|
type lookup Outer::Inner1::S
|
|
type lookup Inner1::S
|
|
type lookup Outer::Inner1::Inner2::S
|
|
type lookup Inner2::S
|
|
type lookup Outer::Inner2::S
|
|
type lookup Outer::A
|
|
type lookup A
|
|
type lookup ::A
|
|
# Test that Clang can find the namespaces as well
|
|
expr sizeof(S)
|
|
expr sizeof(::S)
|
|
expr sizeof(Outer::S)
|
|
expr sizeof(Outer::Inner1::S)
|
|
expr sizeof(Inner1::S)
|
|
expr sizeof(Outer::Inner1::Inner2::S)
|
|
expr sizeof(Outer::Inner2::S)
|
|
expr sizeof(Outer::A)
|
|
expr sizeof(A)
|
|
expr sizeof(::A)
|
|
|
|
quit
|
|
|
|
# CHECK: (lldb) type lookup S
|
|
# CHECK: struct S {
|
|
# CHECK: struct S {
|
|
# CHECK: struct S {
|
|
# CHECK: struct S {
|
|
# CHECK: struct S {
|
|
# CHECK: }
|
|
# CHECK-NEXT: (lldb) type lookup ::S
|
|
# CHECK-NEXT: struct S {
|
|
# CHECK-NEXT: char a[1];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) type lookup Outer::S
|
|
# CHECK-NEXT: struct S {
|
|
# CHECK-NEXT: char a[2];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) type lookup Outer::Inner1::S
|
|
# CHECK-NEXT: struct S {
|
|
# CHECK-NEXT: char a[3];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) type lookup Inner1::S
|
|
# CHECK-NEXT: struct S {
|
|
# CHECK-NEXT: char a[3];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) type lookup Outer::Inner1::Inner2::S
|
|
# CHECK-NEXT: struct S {
|
|
# CHECK-NEXT: char a[4];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) type lookup Inner2::S
|
|
# CHECK-NEXT: struct S {
|
|
# CHECK: struct S {
|
|
# CHECK: }
|
|
# CHECK-NEXT: (lldb) type lookup Outer::Inner2::S
|
|
# CHECK-NEXT: struct S {
|
|
# CHECK-NEXT: char a[5];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) type lookup Outer::A
|
|
# CHECK-NEXT: struct A {
|
|
# CHECK-NEXT: char a[6];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) type lookup A
|
|
# CHECK-NEXT: struct A {
|
|
# CHECK: struct A {
|
|
# CHECK: }
|
|
# CHECK-NEXT: (lldb) type lookup ::A
|
|
# CHECK-NEXT: struct A {
|
|
# CHECK-NEXT: char a[7];
|
|
# CHECK-NEXT: }
|
|
# CHECK-NEXT: (lldb) expr sizeof(S)
|
|
# CHECK-NEXT: (__size_t) $0 = 1
|
|
# CHECK-NEXT: (lldb) expr sizeof(::S)
|
|
# CHECK-NEXT: (__size_t) $1 = 1
|
|
# CHECK-NEXT: (lldb) expr sizeof(Outer::S)
|
|
# CHECK-NEXT: (__size_t) $2 = 2
|
|
# CHECK-NEXT: (lldb) expr sizeof(Outer::Inner1::S)
|
|
# CHECK-NEXT: (__size_t) $3 = 3
|
|
# CHECK-NEXT: (lldb) expr sizeof(Inner1::S)
|
|
# CHECK-NEXT: (__size_t) $4 = 3
|
|
# CHECK-NEXT: (lldb) expr sizeof(Outer::Inner1::Inner2::S)
|
|
# CHECK-NEXT: (__size_t) $5 = 4
|
|
# CHECK-NEXT: (lldb) expr sizeof(Outer::Inner2::S)
|
|
# CHECK-NEXT: (__size_t) $6 = 5
|
|
# CHECK-NEXT: (lldb) expr sizeof(Outer::A)
|
|
# CHECK-NEXT: (__size_t) $7 = 6
|
|
# CHECK-NEXT: (lldb) expr sizeof(A)
|
|
# CHECK-NEXT: (__size_t) $8 = 7
|
|
# CHECK-NEXT: (lldb) expr sizeof(::A)
|
|
# CHECK-NEXT: (__size_t) $9 = 7
|