Skip to content

Conversation

@abhinavgaba
Copy link
Contributor

Two of the tests are currently asserting, and two are emitting unexpected results.

The asserting tests will be fixed using the ATTACH-style codegen from #153683.

The other two involve use_device_addr on byrefs, and need more follow-up codegen changes, that have been noted in a FIXME comment.

Two of the tests are currently asserting, and two are emitting unexpected
results.

The asserting tests will be fixed using the ATTACH-style codegen from llvm#153683.

The other two involve use_device_addr on byrefs, and need more follow-up
codegen changes, that have been noted in a FIXME comment.
@github-actions
Copy link

github-actions bot commented Oct 18, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@abhinavgaba abhinavgaba marked this pull request as ready for review October 20, 2025 03:26
@llvmbot
Copy link
Member

llvmbot commented Oct 20, 2025

@llvm/pr-subscribers-offload

Author: Abhinav Gaba (abhinavgaba)

Changes

Two of the tests are currently asserting, and two are emitting unexpected results.

The asserting tests will be fixed using the ATTACH-style codegen from #153683.

The other two involve use_device_addr on byrefs, and need more follow-up codegen changes, that have been noted in a FIXME comment.


Full diff: https://github.com/llvm/llvm-project/pull/164039.diff

8 Files Affected:

  • (added) offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member.cpp (+34)
  • (added) offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref.cpp (+34)
  • (added) offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp (+49)
  • (added) offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_with_map.cpp (+43)
  • (added) offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member.cpp (+34)
  • (added) offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref.cpp (+34)
  • (added) offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref_with_map.cpp (+36)
  • (added) offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_with_map.cpp (+36)
diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member.cpp
new file mode 100644
index 0000000000000..6fef34f665b66
--- /dev/null
+++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member.cpp
@@ -0,0 +1,34 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f7() {
+#pragma omp target data map(to : c)
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(&c, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data use_device_addr(c)
+      {
+        printf("%d\n", &c == mapped_ptr); // CHECK: 1
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f7();
+}
diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref.cpp
new file mode 100644
index 0000000000000..8ca02ddd0425c
--- /dev/null
+++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref.cpp
@@ -0,0 +1,34 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f8() {
+#pragma omp target enter data map(to : d)
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(&d, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data use_device_addr(d)
+      {
+        printf("%d\n", &d == mapped_ptr); // CHECK: 1
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f8();
+}
diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
new file mode 100644
index 0000000000000..5e8769eb3079d
--- /dev/null
+++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
@@ -0,0 +1,49 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f6() {
+    uintptr_t offset = (uintptr_t)&d - n;
+#pragma omp target data map(to : m, d)
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(&d, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data map(m, d) use_device_addr(d)
+      {
+        // FIXME: Clang is mapping class member references using:
+        //   &this[0], &ref_ptee(this[0].d), 4, PTR_AND_OBJ
+        // but a load from `this[0]` cannot be used to compute the offset
+        // in the runtime, because for example in this case, it would mean
+        // that the base address of the pointee is a load from `n`, i.e. 111.
+        // clang should be emitting the following instead:
+        //   &ref_ptr(this[0].d), &ref_ptee(this[0].d), 4, PTR_AND_OBJ
+        // And eventually, the following that's compatible with the
+        // ref/attach modifiers:
+        //  &ref_ptee(this[0].[d])), &ref_ptee(this[0].d), TO | FROM
+        //  &ref_ptr(this[0].d), &ref_ptee(this[0].d), 4, ATTACH
+        // EXPECTED: 1 0
+        // CHECK:    0 1
+        printf("%d %d\n", &d == mapped_ptr,
+               (uintptr_t)&d == (uintptr_t)mapped_ptr - offset);
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f6();
+}
diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_with_map.cpp
new file mode 100644
index 0000000000000..f5db4ecc66175
--- /dev/null
+++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_with_map.cpp
@@ -0,0 +1,43 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f5() {
+    uintptr_t offset = (uintptr_t)&c - (uintptr_t)this;
+#pragma omp target data map(to : m, c)
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(&c, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data map(m, c) use_device_addr(c)
+      {
+        // FIXME: RT is currently doing the translation for "&this[0]" instead
+        // of &this->c, for a map like:
+        //   this, &this->c, ..., RETURN_PARAM
+        // We either need to fix RT, or emit a separate entry for such
+        // use_device_addr, even if there is a matching map entry already.
+        // EXPECTED: 1 0
+        // CHECK:    0 1
+        printf("%d %d\n", &c == mapped_ptr,
+               (uintptr_t)&c == (uintptr_t)mapped_ptr - offset);
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f5();
+}
diff --git a/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member.cpp b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member.cpp
new file mode 100644
index 0000000000000..b0253cdbe20d9
--- /dev/null
+++ b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member.cpp
@@ -0,0 +1,34 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f3() {
+#pragma omp target data map(to : a[0])
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(a, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data use_device_ptr(a)
+      {
+        printf("%d\n", a == mapped_ptr); // CHECK: 1
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f3();
+}
diff --git a/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref.cpp b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref.cpp
new file mode 100644
index 0000000000000..4de34487c2b04
--- /dev/null
+++ b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref.cpp
@@ -0,0 +1,34 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f4() {
+#pragma omp target data map(to : b[0])
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(b, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data use_device_ptr(b)
+      {
+        printf("%d\n", b == mapped_ptr); // CHECK: 1
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f4();
+}
diff --git a/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref_with_map.cpp
new file mode 100644
index 0000000000000..27fda743b989e
--- /dev/null
+++ b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_ref_with_map.cpp
@@ -0,0 +1,36 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+// XFAIL: *
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f2() {
+#pragma omp target data map(to : b[0])
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(b, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data map(b[0], m) use_device_ptr(b)
+      {
+        printf("%d\n", b == mapped_ptr); // CHECK: 1
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f2();
+}
diff --git a/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_with_map.cpp b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_with_map.cpp
new file mode 100644
index 0000000000000..38a369659d13d
--- /dev/null
+++ b/offload/test/mapping/use_device_ptr/target_data_use_device_ptr_class_member_with_map.cpp
@@ -0,0 +1,36 @@
+// RUN: %libomptarget-compilexx-run-and-check-generic
+
+// XFAIL: *
+
+#include <omp.h>
+#include <stdio.h>
+
+int x = 0;
+int *y = &x;
+int z = 0;
+
+struct ST {
+  int n = 111;
+  int *a = &x;
+  int *&b = y;
+  int c = 0;
+  int &d = z;
+  int m = 0;
+
+  void f1() {
+#pragma omp target data map(to : a[0])
+    {
+      void *mapped_ptr = omp_get_mapped_ptr(a, omp_get_default_device());
+      printf("%d\n", mapped_ptr != NULL); // CHECK: 1
+#pragma omp target data map(a[0], m) use_device_ptr(a)
+      {
+        printf("%d\n", a == mapped_ptr); // CHECK: 1
+      }
+    }
+  }
+};
+
+int main() {
+  ST s;
+  s.f1();
+}

@abhinavgaba abhinavgaba merged commit f37b445 into llvm:main Oct 20, 2025
13 checks passed
@abhinavgaba abhinavgaba deleted the add-class-member-udp-uda-tests branch October 20, 2025 20:24
@mgorny
Copy link
Member

mgorny commented Oct 21, 2025

The new tests are failing for me on Gentoo/arm64:

FAIL: libomptarget :: aarch64-unknown-linux-gnu :: mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp (143 of 810)
******************** TEST 'libomptarget :: aarch64-unknown-linux-gnu :: mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/usr/lib/ccache/bin/aarch64-unknown-linux-gnu-clang++ -fopenmp    -I /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test -I /usr/include -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -L /usr/lib/llvm/22/lib64 -L /usr/lib64  -nogpulib -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -Wl,-rpath,/usr/lib64 -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -Wl,-rpath,/usr/lib/llvm/22/lib64  -fopenmp-targets=aarch64-unknown-linux-gnu /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp -o /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp && /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp | /usr/lib/llvm/22/bin/FileCheck /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
# executed command: /usr/lib/ccache/bin/aarch64-unknown-linux-gnu-clang++ -fopenmp -I /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test -I /usr/include -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -L /usr/lib/llvm/22/lib64 -L /usr/lib64 -nogpulib -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -Wl,-rpath,/usr/lib64 -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -Wl,-rpath,/usr/lib/llvm/22/lib64 -fopenmp-targets=aarch64-unknown-linux-gnu /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp -o /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp
# executed command: /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp
# executed command: /usr/lib/llvm/22/bin/FileCheck /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
# .---command stderr------------
# | /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp:38:12: error: CHECK: expected string not found in input
# |  // CHECK: 0 1
# |            ^
# | <stdin>:1:2: note: scanning from here
# | 1
# |  ^
# | <stdin>:2:1: note: possible intended match here
# | 0 0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: 1 
# | check:38'0      X error: no match found
# |             2: 0 0 
# | check:38'0     ~~~~
# | check:38'1     ?    possible intended match
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

********************
FAIL: libomptarget :: aarch64-unknown-linux-gnu-LTO :: mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp (687 of 810)
******************** TEST 'libomptarget :: aarch64-unknown-linux-gnu-LTO :: mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/usr/lib/ccache/bin/aarch64-unknown-linux-gnu-clang++ -fopenmp    -I /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test -I /usr/include -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -L /usr/lib/llvm/22/lib64 -L /usr/lib64  -nogpulib -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -Wl,-rpath,/usr/lib64 -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -Wl,-rpath,/usr/lib/llvm/22/lib64 -foffload-lto  -fopenmp-targets=aarch64-unknown-linux-gnu /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp -o /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu-LTO/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp && /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu-LTO/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp | /usr/lib/llvm/22/bin/FileCheck /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
# executed command: /usr/lib/ccache/bin/aarch64-unknown-linux-gnu-clang++ -fopenmp -I /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test -I /usr/include -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -L /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -L /usr/lib/llvm/22/lib64 -L /usr/lib64 -nogpulib -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload -Wl,-rpath,/usr/lib64 -Wl,-rpath,/var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/lib -Wl,-rpath,/usr/lib/llvm/22/lib64 -foffload-lto -fopenmp-targets=aarch64-unknown-linux-gnu /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp -o /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu-LTO/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp
# executed command: /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/runtimes_build/offload/test/aarch64-unknown-linux-gnu-LTO/mapping/use_device_addr/Output/target_data_use_device_addr_class_member_ref_with_map.cpp.tmp
# executed command: /usr/lib/llvm/22/bin/FileCheck /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
# .---command stderr------------
# | /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp:38:12: error: CHECK: expected string not found in input
# |  // CHECK: 0 1
# |            ^
# | <stdin>:1:2: note: scanning from here
# | 1
# |  ^
# | <stdin>:2:1: note: possible intended match here
# | 0 0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /var/tmp/portage/llvm-runtimes/offload-22.0.0.9999/work/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: 1 
# | check:38'0      X error: no match found
# |             2: 0 0 
# | check:38'0     ~~~~
# | check:38'1     ?    possible intended match
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

********************

Full build log: llvm-runtimes:offload-22.0.0.9999:20251021-082951.log.gz

abhinavgaba added a commit to abhinavgaba/llvm-project that referenced this pull request Oct 21, 2025
The failure was reported here:

llvm#164039 (comment)

The test is checking for the "bad" behavior so as to keep track of it.
It could just be updated to check the "good" behavior and marked as
XFAIL, but then it would not be as informative.

The update for now is to fix the pointer arithmetic. If that isn't
sufficient, we can fall back to doing the above.
@abhinavgaba
Copy link
Contributor Author

Thanks @mgorny, for the information and the build log. If you are online, and have quick access to a system, please try #164456 and see if it is resolved. I don't have access to an aarch64 system.

Otherwise, I'll merge the fix and if you still see an issue, please ping back.

@mgorny
Copy link
Member

mgorny commented Oct 21, 2025

I've been testing LLVM 21.x release in the meantime. Need 30 minutes or so to finish rebuilding.

abhinavgaba added a commit that referenced this pull request Oct 22, 2025
The failure was reported here:

#164039 (comment)

The test was checking for the "bad" behavior so as to keep track of it, but there seem to be some issues with the pointer arithmetic specific to aarch64.

The update for now is to not check for the "bad" behavior fully.

We may need to debug further if similar issues are encountered eventually once the codegen has been fixed.
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Oct 22, 2025
…#164456)

The failure was reported here:

llvm/llvm-project#164039 (comment)

The test was checking for the "bad" behavior so as to keep track of it, but there seem to be some issues with the pointer arithmetic specific to aarch64.

The update for now is to not check for the "bad" behavior fully.

We may need to debug further if similar issues are encountered eventually once the codegen has been fixed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants