[PS5] Use __gxx_personality_v0 for TSan

This commit is contained in:
Paul Robinson 2022-06-14 10:22:22 -07:00
parent 21ff652de9
commit c36eebb52e
2 changed files with 17 additions and 1 deletions

View File

@ -8,6 +8,7 @@
#include "llvm/Analysis/EHPersonalities.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Triple.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
@ -67,7 +68,10 @@ StringRef llvm::getEHPersonalityName(EHPersonality Pers) {
}
EHPersonality llvm::getDefaultEHPersonality(const Triple &T) {
return EHPersonality::GNU_C;
if (T.isPS5())
return EHPersonality::GNU_CXX;
else
return EHPersonality::GNU_C;
}
bool llvm::canSimplifyInvokeNoUnwind(const Function *F) {

View File

@ -0,0 +1,12 @@
; RUN: opt --mtriple=x86_64-unknown-linux-gnu < %s -passes=tsan -S | FileCheck %s --check-prefix=GCC
; RUN: opt --mtriple=x86_64-scei-ps4 < %s -passes=tsan -S | FileCheck %s --check-prefix=GCC
; RUN: opt --mtriple=x86_64-sie-ps5 < %s -passes=tsan -S | FileCheck %s --check-prefix=GXX
declare void @foo()
define i32 @func1() sanitize_thread {
call void @foo()
ret i32 0
; GCC: __gcc_personality_v0
; GXX: __gxx_personality_v0
}