[clang] [llvm] [ObjC][LTO] Propagate constant ivar offsets across ThinLTO and FullLTO (PR #205970)
Xiaoyang Gong via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 9 02:59:05 PDT 2026
================
@@ -0,0 +1,141 @@
+; Test cross-module ThinLTO sliding when Sub's compile-time instanceStart
+; is stale due to Super's hidden extension ivar.
+;
+; Hierarchy:
+; NSObject
+; `- Super
+; int x; // x at offset 8
+; int hidden; // hidden at offset 12 (extension)
+; `- Sub
+; int y; // y compiled at 12, slid to 16
+;
+; RUN: rm -rf %t && split-file %s %t
+; RUN: opt -module-summary %t/sub.ll -o %t/sub.bc
+; RUN: opt -module-summary %t/super.ll -o %t/super.bc
+; RUN: llvm-lto2 run %t/sub.bc %t/super.bc -save-temps -o %t/out \
+; RUN: -r=%t/sub.bc,_OBJC_CLASS_$_Sub,plx \
----------------
KotoriAster wrote:
The `llvm-lto2` command is verbose, but the long symbol-resolution list is intentionally limited to the metadata the test needs to materialize the ObjC class hierarchy across the two ThinLTO modules.
https://github.com/llvm/llvm-project/pull/205970
More information about the cfe-commits
mailing list