Skip to content

Revert "[PAC][ELF][AArch64] Support signed personality function pointer" #119331

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 10, 2024

Conversation

kovdan01
Copy link
Contributor

@kovdan01 kovdan01 marked this pull request as ready for review December 10, 2024 06:12
@kovdan01 kovdan01 requested review from asl and MaskRay December 10, 2024 06:12
@llvmbot llvmbot added clang Clang issues not falling into any other category backend:AArch64 clang:codegen IR generation bugs: mangling, exceptions, etc. debuginfo labels Dec 10, 2024
@kovdan01 kovdan01 merged commit ef2e590 into main Dec 10, 2024
12 of 14 checks passed
@kovdan01 kovdan01 deleted the revert-113148-pauth-personality branch December 10, 2024 06:12
@llvmbot
Copy link
Member

llvmbot commented Dec 10, 2024

@llvm/pr-subscribers-debuginfo
@llvm/pr-subscribers-clang-codegen
@llvm/pr-subscribers-backend-aarch64

@llvm/pr-subscribers-clang

Author: Daniil Kovalev (kovdan01)

Changes

Reverts llvm/llvm-project#113148

See buildbot failure https://lab.llvm.org/buildbot/#/builders/190/builds/11048


Full diff: https://github.com/llvm/llvm-project/pull/119331.diff

16 Files Affected:

  • (modified) clang/lib/CodeGen/CodeGenModule.cpp (-3)
  • (modified) clang/test/CodeGen/ptrauth-module-flags.c (-5)
  • (modified) llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h (+1-7)
  • (modified) llvm/include/llvm/Target/TargetLoweringObjectFile.h (+1-2)
  • (modified) llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp (+1-2)
  • (modified) llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (+1-9)
  • (removed) llvm/lib/Target/AArch64/AArch64MachineModuleInfo.cpp (-32)
  • (removed) llvm/lib/Target/AArch64/AArch64MachineModuleInfo.h (-35)
  • (modified) llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp (-17)
  • (modified) llvm/lib/Target/AArch64/AArch64TargetObjectFile.h (-4)
  • (modified) llvm/lib/Target/AArch64/CMakeLists.txt (-1)
  • (modified) llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp (-10)
  • (modified) llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h (-6)
  • (modified) llvm/lib/Target/TargetLoweringObjectFile.cpp (+4-3)
  • (removed) llvm/test/CodeGen/AArch64/ptrauth-sign-personality.ll (-39)
  • (modified) llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn (-1)
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 841fb1ced9a02b..d3d5c0743a520b 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -1218,9 +1218,6 @@ void CodeGenModule::Release() {
       getModule().addModuleFlag(llvm::Module::Min, "ptrauth-elf-got", 1);
 
     if (getTriple().isOSLinux()) {
-      if (LangOpts.PointerAuthCalls)
-        getModule().addModuleFlag(llvm::Module::Min, "ptrauth-sign-personality",
-                                  1);
       assert(getTriple().isOSBinFormatELF());
       using namespace llvm::ELF;
       uint64_t PAuthABIVersion =
diff --git a/clang/test/CodeGen/ptrauth-module-flags.c b/clang/test/CodeGen/ptrauth-module-flags.c
index e441d52cb7c62b..5a7e9a7c2a36fe 100644
--- a/clang/test/CodeGen/ptrauth-module-flags.c
+++ b/clang/test/CodeGen/ptrauth-module-flags.c
@@ -1,13 +1,8 @@
 // RUN: %clang_cc1 -triple aarch64-linux-gnu                   -emit-llvm %s  -o - | FileCheck %s --check-prefix=OFF
 // RUN: %clang_cc1 -triple aarch64-linux-gnu -fptrauth-elf-got -emit-llvm %s  -o - | FileCheck %s --check-prefix=ELFGOT
-// RUN: %clang_cc1 -triple aarch64-linux-gnu -fptrauth-calls   -emit-llvm %s  -o - | FileCheck %s --check-prefix=PERSONALITY
 
 // ELFGOT:      !llvm.module.flags = !{
 // ELFGOT-SAME: !1
 // ELFGOT:      !1 = !{i32 8, !"ptrauth-elf-got", i32 1}
 
-// PERSONALITY:      !llvm.module.flags = !{
-// PERSONALITY-SAME: !1
-// PERSONALITY:      !1 = !{i32 8, !"ptrauth-sign-personality", i32 1}
-
 // OFF-NOT: "ptrauth-
diff --git a/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h b/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
index a2a9e5d499e527..8eef45ce565deb 100644
--- a/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
+++ b/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
@@ -52,13 +52,7 @@ class TargetLoweringObjectFileELF : public TargetLoweringObjectFile {
   void emitModuleMetadata(MCStreamer &Streamer, Module &M) const override;
 
   void emitPersonalityValue(MCStreamer &Streamer, const DataLayout &DL,
-                            const MCSymbol *Sym,
-                            const MachineModuleInfo *MMI) const override;
-
-  virtual void emitPersonalityValueImpl(MCStreamer &Streamer,
-                                        const DataLayout &DL,
-                                        const MCSymbol *Sym,
-                                        const MachineModuleInfo *MMI) const;
+                            const MCSymbol *Sym) const override;
 
   /// Given a constant with the SectionKind, return a section that it should be
   /// placed in.
diff --git a/llvm/include/llvm/Target/TargetLoweringObjectFile.h b/llvm/include/llvm/Target/TargetLoweringObjectFile.h
index 4864ba843f4886..0c09cfe684783b 100644
--- a/llvm/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/llvm/include/llvm/Target/TargetLoweringObjectFile.h
@@ -82,8 +82,7 @@ class TargetLoweringObjectFile : public MCObjectFileInfo {
   virtual void Initialize(MCContext &ctx, const TargetMachine &TM);
 
   virtual void emitPersonalityValue(MCStreamer &Streamer, const DataLayout &TM,
-                                    const MCSymbol *Sym,
-                                    const MachineModuleInfo *MMI) const;
+                                    const MCSymbol *Sym) const;
 
   /// Emit the module-level metadata that the platform cares about.
   virtual void emitModuleMetadata(MCStreamer &Streamer, Module &M) const {}
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
index 4fac4bbc98477d..087ee02a7f2b35 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
@@ -50,8 +50,7 @@ void DwarfCFIException::endModule() {
   // Emit indirect reference table for all used personality functions
   for (const GlobalValue *Personality : Personalities) {
     MCSymbol *Sym = Asm->getSymbol(Personality);
-    TLOF.emitPersonalityValue(*Asm->OutStreamer, Asm->getDataLayout(), Sym,
-                              Asm->MMI);
+    TLOF.emitPersonalityValue(*Asm->OutStreamer, Asm->getDataLayout(), Sym);
   }
   Personalities.clear();
 }
diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
index d5342b5d3651f1..ce50a3c19ffe04 100644
--- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -413,8 +413,7 @@ MCSymbol *TargetLoweringObjectFileELF::getCFIPersonalitySymbol(
 }
 
 void TargetLoweringObjectFileELF::emitPersonalityValue(
-    MCStreamer &Streamer, const DataLayout &DL, const MCSymbol *Sym,
-    const MachineModuleInfo *MMI) const {
+    MCStreamer &Streamer, const DataLayout &DL, const MCSymbol *Sym) const {
   SmallString<64> NameData("DW.ref.");
   NameData += Sym->getName();
   MCSymbolELF *Label =
@@ -432,13 +431,6 @@ void TargetLoweringObjectFileELF::emitPersonalityValue(
   Streamer.emitELFSize(Label, E);
   Streamer.emitLabel(Label);
 
-  emitPersonalityValueImpl(Streamer, DL, Sym, MMI);
-}
-
-void TargetLoweringObjectFileELF::emitPersonalityValueImpl(
-    MCStreamer &Streamer, const DataLayout &DL, const MCSymbol *Sym,
-    const MachineModuleInfo *MMI) const {
-  unsigned Size = DL.getPointerSize();
   Streamer.emitSymbolValue(Sym, Size);
 }
 
diff --git a/llvm/lib/Target/AArch64/AArch64MachineModuleInfo.cpp b/llvm/lib/Target/AArch64/AArch64MachineModuleInfo.cpp
deleted file mode 100644
index 8a655b166ee862..00000000000000
--- a/llvm/lib/Target/AArch64/AArch64MachineModuleInfo.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-//===--- AArch64MachineModuleInfo.cpp ---------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file
-/// AArch64 Machine Module Info.
-///
-//
-//===----------------------------------------------------------------------===//
-
-#include "AArch64MachineModuleInfo.h"
-#include "llvm/IR/Constants.h"
-#include "llvm/IR/Module.h"
-
-namespace llvm {
-
-AArch64MachineModuleInfo::AArch64MachineModuleInfo(const MachineModuleInfo &MMI)
-    : MachineModuleInfoELF(MMI) {
-  const Module *M = MMI.getModule();
-  const auto *Flag = mdconst::extract_or_null<ConstantInt>(
-      M->getModuleFlag("ptrauth-sign-personality"));
-  if (Flag && Flag->getZExtValue() == 1)
-    HasSignedPersonality = true;
-  else
-    HasSignedPersonality = false;
-}
-
-} // end namespace llvm
diff --git a/llvm/lib/Target/AArch64/AArch64MachineModuleInfo.h b/llvm/lib/Target/AArch64/AArch64MachineModuleInfo.h
deleted file mode 100644
index ba1eafd022a4be..00000000000000
--- a/llvm/lib/Target/AArch64/AArch64MachineModuleInfo.h
+++ /dev/null
@@ -1,35 +0,0 @@
-//===--- AArch64MachineModuleInfo.h -----------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file
-/// AArch64 Machine Module Info.
-///
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEMODULEINFO_H
-#define LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEMODULEINFO_H
-
-#include "llvm/CodeGen/MachineModuleInfoImpls.h"
-
-namespace llvm {
-
-class AArch64MachineModuleInfo final : public MachineModuleInfoELF {
-  /// HasSignedPersonality is true if the corresponding IR module has the
-  /// "ptrauth-sign-personality" flag set to 1.
-  bool HasSignedPersonality = false;
-
-public:
-  AArch64MachineModuleInfo(const MachineModuleInfo &);
-
-  bool hasSignedPersonality() const { return HasSignedPersonality; }
-};
-
-} // end namespace llvm
-
-#endif // LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEMODULEINFO_H
diff --git a/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp b/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp
index f74861e1c41d40..54de42a094f340 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp
@@ -7,10 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 #include "AArch64TargetObjectFile.h"
-#include "AArch64MachineModuleInfo.h"
 #include "AArch64TargetMachine.h"
 #include "MCTargetDesc/AArch64MCExpr.h"
-#include "MCTargetDesc/AArch64TargetStreamer.h"
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/CodeGen/MachineModuleInfoImpls.h"
 #include "llvm/IR/Mangler.h"
@@ -30,21 +28,6 @@ void AArch64_ELFTargetObjectFile::Initialize(MCContext &Ctx,
   SupportDebugThreadLocalLocation = false;
 }
 
-void AArch64_ELFTargetObjectFile::emitPersonalityValueImpl(
-    MCStreamer &Streamer, const DataLayout &DL, const MCSymbol *Sym,
-    const MachineModuleInfo *MMI) const {
-  if (!MMI->getObjFileInfo<AArch64MachineModuleInfo>().hasSignedPersonality()) {
-    TargetLoweringObjectFileELF::emitPersonalityValueImpl(Streamer, DL, Sym,
-                                                          MMI);
-    return;
-  }
-  auto *TS = static_cast<AArch64TargetStreamer *>(Streamer.getTargetStreamer());
-  // The value is ptrauth_string_discriminator("personality")
-  constexpr uint16_t Discriminator = 0x7EAD;
-  TS->emitAuthValue(MCSymbolRefExpr::create(Sym, getContext()), Discriminator,
-                    AArch64PACKey::IA, /*HasAddressDiversity=*/true);
-}
-
 const MCExpr *AArch64_ELFTargetObjectFile::getIndirectSymViaGOTPCRel(
     const GlobalValue *GV, const MCSymbol *Sym, const MCValue &MV,
     int64_t Offset, MachineModuleInfo *MMI, MCStreamer &Streamer) const {
diff --git a/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h b/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h
index 0c822ac84f200c..2ef8bda2988d47 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h
+++ b/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h
@@ -35,10 +35,6 @@ class AArch64_ELFTargetObjectFile : public TargetLoweringObjectFileELF {
                                  MachineModuleInfo *MMI, const MCSymbol *RawSym,
                                  AArch64PACKey::ID Key,
                                  uint16_t Discriminator) const;
-
-  void emitPersonalityValueImpl(MCStreamer &Streamer, const DataLayout &DL,
-                                const MCSymbol *Sym,
-                                const MachineModuleInfo *MMI) const override;
 };
 
 /// AArch64_MachoTargetObjectFile - This TLOF implementation is used for Darwin.
diff --git a/llvm/lib/Target/AArch64/CMakeLists.txt b/llvm/lib/Target/AArch64/CMakeLists.txt
index c87f7de4efee3c..da13db8e68b0e6 100644
--- a/llvm/lib/Target/AArch64/CMakeLists.txt
+++ b/llvm/lib/Target/AArch64/CMakeLists.txt
@@ -67,7 +67,6 @@ add_llvm_target(AArch64CodeGen
   AArch64LoadStoreOptimizer.cpp
   AArch64LowerHomogeneousPrologEpilog.cpp
   AArch64MachineFunctionInfo.cpp
-  AArch64MachineModuleInfo.cpp
   AArch64MachineScheduler.cpp
   AArch64MacroFusion.cpp
   AArch64MIPeepholeOpt.cpp
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
index 7bd89c9e29a728..dc5383ce941ed9 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
@@ -35,16 +35,6 @@ AArch64TargetStreamer::AArch64TargetStreamer(MCStreamer &S)
 
 AArch64TargetStreamer::~AArch64TargetStreamer() = default;
 
-void AArch64TargetStreamer::emitAuthValue(const MCExpr *Expr,
-                                          uint16_t Discriminator,
-                                          AArch64PACKey::ID Key,
-                                          bool HasAddressDiversity) {
-  Streamer.emitValueImpl(AArch64AuthMCExpr::create(Expr, Discriminator, Key,
-                                                   HasAddressDiversity,
-                                                   Streamer.getContext()),
-                         8);
-}
-
 // The constant pool handling is shared by all AArch64TargetStreamer
 // implementations.
 const MCExpr *AArch64TargetStreamer::addConstantPoolEntry(const MCExpr *Expr,
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
index 1c0f5d848c00c6..ac441ae3b603ff 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
@@ -9,7 +9,6 @@
 #ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64TARGETSTREAMER_H
 #define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64TARGETSTREAMER_H
 
-#include "AArch64MCExpr.h"
 #include "llvm/MC/MCStreamer.h"
 
 namespace {
@@ -39,11 +38,6 @@ class AArch64TargetStreamer : public MCTargetStreamer {
   void emitNoteSection(unsigned Flags, uint64_t PAuthABIPlatform = -1,
                        uint64_t PAuthABIVersion = -1);
 
-  /// Callback used to emit AUTH expressions (e.g. signed
-  /// personality function pointer).
-  void emitAuthValue(const MCExpr *Expr, uint16_t Discriminator,
-                     AArch64PACKey::ID Key, bool HasAddressDiversity);
-
   /// Callback used to implement the .inst directive.
   virtual void emitInst(uint32_t Inst);
 
diff --git a/llvm/lib/Target/TargetLoweringObjectFile.cpp b/llvm/lib/Target/TargetLoweringObjectFile.cpp
index 4fe9d13d062265..7d9b926f4c42b6 100644
--- a/llvm/lib/Target/TargetLoweringObjectFile.cpp
+++ b/llvm/lib/Target/TargetLoweringObjectFile.cpp
@@ -141,9 +141,10 @@ MCSymbol *TargetLoweringObjectFile::getCFIPersonalitySymbol(
   return TM.getSymbol(GV);
 }
 
-void TargetLoweringObjectFile::emitPersonalityValue(
-    MCStreamer &Streamer, const DataLayout &, const MCSymbol *Sym,
-    const MachineModuleInfo *MMI) const {}
+void TargetLoweringObjectFile::emitPersonalityValue(MCStreamer &Streamer,
+                                                    const DataLayout &,
+                                                    const MCSymbol *Sym) const {
+}
 
 void TargetLoweringObjectFile::emitCGProfileMetadata(MCStreamer &Streamer,
                                                      Module &M) const {
diff --git a/llvm/test/CodeGen/AArch64/ptrauth-sign-personality.ll b/llvm/test/CodeGen/AArch64/ptrauth-sign-personality.ll
deleted file mode 100644
index d4ee49d9aeeabf..00000000000000
--- a/llvm/test/CodeGen/AArch64/ptrauth-sign-personality.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llc -mtriple=aarch64-linux -filetype=asm %s -o - | FileCheck %s
-; RUN: llc -mtriple=aarch64-linux -filetype=obj %s -o - | \
-; RUN:   llvm-readelf -r -x .data.DW.ref.__gxx_personality_v0 - | \
-; RUN:   FileCheck --check-prefix=RELOC %s
-
-@_ZTISt9exception = external constant ptr
-
-define i32 @main() personality ptr @__gxx_personality_v0 {
-entry:
-  invoke void @foo() to label %cont unwind label %lpad
-
-lpad:
-  %0 = landingpad { ptr, i32 }
-    catch ptr null
-    catch ptr @_ZTISt9exception
-  ret i32 0
-
-cont:
-  ret i32 0
-}
-
-declare i32 @__gxx_personality_v0(...)
-
-declare void @foo()
-
-!llvm.module.flags = !{!0}
-!0 = !{i32 8, !"ptrauth-sign-personality", i32 1}
-
-; CHECK:      DW.ref.__gxx_personality_v0:
-; CHECK-NEXT:     .xword  __gxx_personality_v0@AUTH(ia,32429,addr)
-
-; RELOC:      Relocation section '.rela.data.DW.ref.__gxx_personality_v0' at offset 0x2a0 contains 1 entries:
-; RELOC-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
-; RELOC-NEXT: 0000000000000000  0000000f00000244 R_AARCH64_AUTH_ABS64   0000000000000000 __gxx_personality_v0 + 0
-
-; RELOC:      Hex dump of section '.data.DW.ref.__gxx_personality_v0':
-; RELOC-NEXT: 0x00000000 00000000 ad7e0080
-;                                 ^^^^ 0x7EAD = discriminator
-;                                       ^^ 0b10000000: bit 63 = 1 -> address diversity enabled, bits 61:60 = 0b00 -> key is IA
diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
index 237fd73b705126..57570de8813751 100644
--- a/llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
@@ -135,7 +135,6 @@ static_library("LLVMAArch64CodeGen") {
     "AArch64MCInstLower.cpp",
     "AArch64MIPeepholeOpt.cpp",
     "AArch64MachineFunctionInfo.cpp",
-    "AArch64MachineModuleInfo.cpp",
     "AArch64MachineScheduler.cpp",
     "AArch64MacroFusion.cpp",
     "AArch64PBQPRegAlloc.cpp",

@llvm-ci
Copy link
Collaborator

llvm-ci commented Dec 10, 2024

LLVM Buildbot has detected a new failure on builder lld-x86_64-win running on as-worker-93 while building clang,llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/146/builds/1803

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM-Unit :: Support/./SupportTests.exe/38/87' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:C:\a\lld-x86_64-win\build\unittests\Support\.\SupportTests.exe-LLVM-Unit-21236-38-87.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=87 GTEST_SHARD_INDEX=38 C:\a\lld-x86_64-win\build\unittests\Support\.\SupportTests.exe
--

Script:
--
C:\a\lld-x86_64-win\build\unittests\Support\.\SupportTests.exe --gtest_filter=ProgramEnvTest.CreateProcessLongPath
--
C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp(160): error: Expected equality of these values:
  0
  RC
    Which is: -2

C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp(163): error: fs::remove(Twine(LongPath)): did not return errc::success.
error number: 13
error message: permission denied



C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp:160
Expected equality of these values:
  0
  RC
    Which is: -2

C:\a\lld-x86_64-win\llvm-project\llvm\unittests\Support\ProgramTest.cpp:163
fs::remove(Twine(LongPath)): did not return errc::success.
error number: 13
error message: permission denied




********************


kovdan01 added a commit that referenced this pull request Dec 16, 2024
)

Re-apply #113148 after revert in #119331

If function pointer signing is enabled, sign personality function
pointer stored in `.DW.ref.__gxx_personality_v0` section with IA key,
0x7EAD = `ptrauth_string_discriminator("personality")` constant
discriminator and address diversity enabled.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AArch64 clang:codegen IR generation bugs: mangling, exceptions, etc. clang Clang issues not falling into any other category debuginfo
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants