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

Nikita Popov via All-commits all-commits at lists.llvm.org
Tue Jun 4 13:55:48 PDT 2024


  Branch: refs/heads/release/18.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 7e6ece9b4f2d37caf8ff7b87603f15ed9ad2d6ec
      https://github.com/llvm/llvm-project/commit/7e6ece9b4f2d37caf8ff7b87603f15ed9ad2d6ec
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-04 (Tue, 04 Jun 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.

(cherry picked from commit 9f85bc834b07ebfec9e5e02deb9255a0f6ec5cc7)



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