Files
derek.holloway 7502bf64a4
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
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

150 lines
4.1 KiB
Plaintext

# REQUIRES: lldb-formatters-compatibility
#
# RUN: split-file %s %t
# RUN: lldb -x \
# RUN: -o 'command script import %llvm_src_root/utils/lldbDataFormatters.py' \
# RUN: -s %t/commands.input %llvm_tools_dir/check-lldb-llvm-support-pointer-union \
# RUN: -o quit \
# RUN: | FileCheck %t/checks
#--- commands.input
break set -p "Break here"
run
p &f
p &a
p &z
p &derived
p &dv
v -T z_float
v -T raw_z_float
v -T null_float
v -T long_int_float
v -T z_only
v -T union_int_pair
p z_float.Pointer
p union_int_pair.Pointer
p union_int_pair.Pointer.Pointer
continue
v -T z_float
continue
v -T virtual_float
p virtual_float.Pointer
continue
p &local
v -T local_float
continue
p &a4_0
p &a8_0
v -T varwidth
v -T varwidth_tier1
#--- checks
# CHECK: (lldb) p &f
# CHECK-NEXT: (float *) [[PTR_F:0x[0-9a-zA-Z]+]]
# CHECK: (lldb) p &a
# CHECK-NEXT: (int *) [[PTR_A:0x[0-9a-zA-Z]+]]
# CHECK: (lldb) p &z
# CHECK-NEXT: (Z *) [[PTR_Z:0x[0-9a-zA-Z]+]]
# CHECK: (lldb) p &derived
# CHECK-NEXT: (Derived *) [[PTR_DERIVED:0x[0-9a-zA-Z]+]]
# CHECK: (lldb) p &dv
# CHECK-NEXT: (DerivedWithVirtual *) [[PTR_DV:0x[0-9a-zA-Z]+]]
# CHECK: (lldb) v -T z_float
# CHECK-NEXT: (llvm::PointerUnion<Z *, float *>) z_float = {
# CHECK-NEXT: (float *) Pointer = [[PTR_F]]
# CHECK-NEXT: }
# CHECK: (lldb) v -T raw_z_float
# CHECK-NEXT: (llvm::PointerUnion<Z *, float *>) raw_z_float = {
# CHECK-NEXT: (Z *) Pointer = nullptr
# CHECK-NEXT: }
# null float* has non-zero raw_value (tag=1), pointer component=0.
# LLDB renders this as an address literal rather than nullptr.
# CHECK: (lldb) v -T null_float
# CHECK-NEXT: (llvm::PointerUnion<Z *, float *>) null_float = {
# CHECK-NEXT: (float *) Pointer = 0x{{0+}}
# CHECK-NEXT: }
# CHECK: (lldb) v -T long_int_float
# CHECK-NEXT: (llvm::PointerUnion<long long *, int *, float *>) long_int_float = {
# CHECK-NEXT: (int *) Pointer = [[PTR_A]]
# CHECK-NEXT: }
# CHECK: (lldb) v -T z_only
# CHECK-NEXT: (llvm::PointerUnion<Z *>) z_only = {
# CHECK-NEXT: (Z *) Pointer = [[PTR_Z]]
# CHECK-NEXT: }
# CHECK: (lldb) v -T union_int_pair
# CHECK-NEXT: (llvm::PointerIntPair<llvm::PointerUnion<Z *, float *>, 1>) union_int_pair = {
# CHECK-NEXT: (llvm::PointerUnion<Z *, float *>) Pointer = {
# CHECK-NEXT: (float *) Pointer = [[PTR_F]]
# CHECK-NEXT: }
# CHECK-NEXT: (unsigned int) Int = 1
# CHECK-NEXT: }
# CHECK: (lldb) p z_float.Pointer
# CHECK-NEXT: (float *) [[PTR_F]]
# CHECK: (lldb) p union_int_pair.Pointer
# CHECK-NEXT: (llvm::PointerUnion<Z *, float *>) {
# CHECK-NEXT: Pointer = [[PTR_F]]
# CHECK-NEXT: }
# CHECK: (lldb) p union_int_pair.Pointer.Pointer
# CHECK-NEXT: (float *) [[PTR_F]]
# CHECK: (lldb) v -T z_float
# CHECK-NEXT: (llvm::PointerUnion<Z *, float *>) z_float = {
# CHECK-NEXT: (Z *) Pointer = [[PTR_DERIVED]]
# CHECK-NEXT: }
# CHECK: (lldb) v -T virtual_float
# CHECK-NEXT: (llvm::PointerUnion<HasVirtual *, float *>) virtual_float = {
# CHECK-NEXT: (DerivedWithVirtual *) Pointer = [[PTR_DV]]
# CHECK-NEXT: }
# CHECK: (lldb) p virtual_float.Pointer
# CHECK-NEXT: (DerivedWithVirtual *) [[PTR_DV]]
# CHECK: (lldb) p &local
# CHECK-NEXT: (Local *) [[PTR_LOCAL:0x[0-9a-zA-Z]+]]
# CHECK: (lldb) v -T local_float
# CHECK-NEXT: (llvm::PointerUnion<Local *, float *>) local_float = {
# CHECK-NEXT: (Local *) Pointer = [[PTR_LOCAL]]
# CHECK-NEXT: }
# CHECK: (lldb) p &a4_0
# CHECK-NEXT: (Align4<0> *) [[PTR_A4:0x[0-9a-zA-Z]+]]
# CHECK: (lldb) p &a8_0
# CHECK-NEXT: (Align8<0> *) [[PTR_A8:0x[0-9a-zA-Z]+]]
# Variable-width tag encoding: formatter falls back to void* with
# tag bits stripped, since fixed-width decoding doesn't apply.
# CHECK: (lldb) v -T varwidth
# CHECK-NEXT: (llvm::PointerUnion<Align4<0> *, Align4<1> *, Align4<2> *, Align8<0> *, Align8<1> *>) varwidth = {
# CHECK-NEXT: (void *) Pointer = [[PTR_A4]]
# CHECK-NEXT: }
# CHECK: (lldb) v -T varwidth_tier1
# CHECK-NEXT: (llvm::PointerUnion<Align4<0> *, Align4<1> *, Align4<2> *, Align8<0> *, Align8<1> *>) varwidth_tier1 = {
# CHECK-NEXT: (void *) Pointer = [[PTR_A8]]
# CHECK-NEXT: }