[all-commits] [llvm/llvm-project] 668ee3: [clang] Default to -fno-sized-deallocation for AIX...

Xing Xue via All-commits all-commits at lists.llvm.org
Mon Jul 1 12:38:14 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 668ee3f5478c1e1b549923667cf1b8704b1a0bd0
      https://github.com/llvm/llvm-project/commit/668ee3f5478c1e1b549923667cf1b8704b1a0bd0
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/AIX.cpp
    M clang/unittests/StaticAnalyzer/CallEventTest.cpp

  Log Message:
  -----------
  [clang] Default to -fno-sized-deallocation for AIX (#97076)

Some `libc++` LIT test cases and user code define their own version of
`operator delete` that are not sized. With `-fno-sized-deallocation`,
destructors call the non-sized `operator delete` and it will be resolved
to the user defined version. However, with `-fsized-deallocation`,
destructors will call the sized `operator delete` which will be resolved
to the weak definition in `libc++abi` because the user code does not
define the corresponding sized version. The `libc++abi` sized `operator
delete` in turn calls the non-sized version of `operator delete` of the
same shared object inside `libc++abi` instead of the user defined
version on AIX because runtime linking is not the default for AIX and
therefore, fails the tests or user code. This patch sets
`-fno-sized-deallocation` as the default for AIX if neither
`-fsize-deallocation` nor `-fno-sized-deallocation` is explicitly set,
similar to what is done for ZOS.



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