[all-commits] [llvm/llvm-project] c4edd8: [Object] Fix irsymtab CommonSize truncation past 4...

ejose02 via All-commits all-commits at lists.llvm.org
Mon Jul 13 21:40:11 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c4edd8bde42cf6b1a25839601b75f3865bba6976
      https://github.com/llvm/llvm-project/commit/c4edd8bde42cf6b1a25839601b75f3865bba6976
  Author: ejose02 <ejose at amd.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M llvm/include/llvm/Object/IRSymtab.h
    A llvm/test/Object/X86/irsymtab-large-common.ll
    M llvm/test/Object/X86/irsymtab.ll

  Log Message:
  -----------
  [Object] Fix irsymtab CommonSize truncation past 4 GiB (#209085)

Fixes #208669

Issue :
With -flto, Fortran COMMON blocks larger than 4 GiB were silently
miscompiled. The linker reserved only the low 32 bits of the declared
size, so stores past that boundary could segfault with no diagnostic.

Root Cause :
storage::Uncommon::CommonSize in the LTO irsymtab was stored as 32-bit
(Word). Sizes above 2^32 bytes were truncated when the symtab was
written and read back at link time.

Fix :
Widen CommonSize to 64-bit and bump irsymtab format version to 4. Added
test to verify symtab records the full size.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list