mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
Add LLVM_ATTRIBUTE_USED to fix problems which could be exposed by aggressive global pointer variable removal
Note to BuryPointer.cpp:GraveYard. 'unused' cannot prevent (1) dead store elimination and (2) removal of the global pointer variable (D69428) but 'used' can. Discovered when comparing link maps between HEAD+D69428 and HEAD. Reviewed By: lattner Differential Revision: https://reviews.llvm.org/D101217
This commit is contained in:
parent
4cb0dafe51
commit
e5c758dcf3
@ -19,7 +19,7 @@ void BuryPointer(const void *Ptr) {
|
||||
// will not be properly buried and a leak detector will report a leak, which
|
||||
// is what we want in such case.
|
||||
static const size_t kGraveYardMaxSize = 16;
|
||||
LLVM_ATTRIBUTE_UNUSED static const void *GraveYard[kGraveYardMaxSize];
|
||||
LLVM_ATTRIBUTE_USED static const void *GraveYard[kGraveYardMaxSize];
|
||||
static std::atomic<unsigned> GraveYardSize;
|
||||
unsigned Idx = GraveYardSize++;
|
||||
if (Idx >= kGraveYardMaxSize)
|
||||
|
@ -255,7 +255,7 @@ static struct {
|
||||
// stack if we remove our signal handlers; that can't be done reliably if
|
||||
// someone else is also trying to do the same thing.
|
||||
static stack_t OldAltStack;
|
||||
static void* NewAltStackPointer;
|
||||
LLVM_ATTRIBUTE_USED static void *NewAltStackPointer;
|
||||
|
||||
static void CreateSigAltStack() {
|
||||
const size_t AltStackSize = MINSIGSTKSZ + 64 * 1024;
|
||||
|
Loading…
Reference in New Issue
Block a user