[all-commits] [llvm/llvm-project] 9f85bc: [PPCMergeStringPool] Only replace constant once (#...

Nikita Popov via All-commits all-commits at lists.llvm.org
Sun May 26 23:54:33 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9f85bc834b07ebfec9e5e02deb9255a0f6ec5cc7
      https://github.com/llvm/llvm-project/commit/9f85bc834b07ebfec9e5e02deb9255a0f6ec5cc7
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCMergeStringPool.cpp
    A llvm/test/CodeGen/PowerPC/mergeable-string-pool-pr92991.ll

  Log Message:
  -----------
  [PPCMergeStringPool] Only replace constant once (#92996)

In #88846 I changed this code to use RAUW to perform the replacement
instead of manual updates -- but kept the outer loop, which means we try
to perform RAUW once per user. However, some of the users might be freed
by the RAUW operation, resulting in use-after-free.

The case where this happens is constant users where the replacement
might result in the destruction of the original constant.

Fixes https://github.com/llvm/llvm-project/issues/92991.



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