Skip to content

Commit

Permalink
Avoid using self() in constructors
Browse files Browse the repository at this point in the history
Using `self()` within constructors relies on undefined behaviour and
should be avoided.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
  • Loading branch information
fjeremic committed Feb 28, 2020
1 parent 759b84f commit 153c209
Show file tree
Hide file tree
Showing 9 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion compiler/aarch64/codegen/ARM64SystemLinkage.cpp
Expand Up @@ -118,7 +118,7 @@ TR::ARM64SystemLinkage::ARM64SystemLinkage(TR::CodeGenerator *cg)
_properties._j9methodArgumentRegister = TR::RealRegister::NoReg;

_properties._numberOfDependencyGPRegisters = 32; // To be determined
self()->setOffsetToFirstParm(0); // To be determined
setOffsetToFirstParm(0); // To be determined
_properties._offsetToFirstLocal = 0; // To be determined
}

Expand Down
2 changes: 1 addition & 1 deletion compiler/arm/codegen/ARMDebug.cpp
Expand Up @@ -1118,7 +1118,7 @@ TR_Debug::print(TR::FILE *pOutFile, TR::ARMCallSnippet * snippet)
printSnippetLabel(pOutFile, snippet->getSnippetLabel(), bufferPos, getName(snippet), getName(methodSymRef));

TR::Machine *machine = _cg->machine();
TR::Linkage* linkage = _cg->getLinkage(methodSymbol->getLinkageConvention());
TR::Linkage *linkage = _cg->getLinkage(methodSymbol->getLinkageConvention());
const TR::ARMLinkageProperties &linkageProperties = linkage->getProperties();

uint32_t numIntArgs = 0;
Expand Down
2 changes: 1 addition & 1 deletion compiler/arm/codegen/ARMSystemLinkage.cpp
Expand Up @@ -178,7 +178,7 @@ TR::ARMLinkageProperties TR::ARMSystemLinkage::properties =
TR::ARMSystemLinkage::ARMSystemLinkage(TR::CodeGenerator *cg)
: TR::Linkage(cg)
{
self()->setOffsetToFirstParm(0);
setOffsetToFirstParm(0);
}

void TR::ARMSystemLinkage::initARMRealRegisterLinkage()
Expand Down
6 changes: 3 additions & 3 deletions compiler/p/codegen/PPCSystemLinkage.cpp
Expand Up @@ -336,7 +336,7 @@ TR::PPCSystemLinkage::PPCSystemLinkage(TR::CodeGenerator *cg)

// Volatile GPR (0,2-12) + FPR (0-13) + CCR (0-1,5-7) + VR (0-19) + FPR (14-31) if used as vector
_properties._numberOfDependencyGPRegisters = 12 + 14 + 5 + 20 + 18;
self()->setOffsetToFirstParm(isBE ? 48 : 32);
setOffsetToFirstParm(isBE ? 48 : 32);
_properties._offsetToFirstLocal = isBE?48:32;
}
else
Expand All @@ -345,14 +345,14 @@ TR::PPCSystemLinkage::PPCSystemLinkage(TR::CodeGenerator *cg)
{
// Volatile GPR (0,2-12) + FPR (0-13) + CCR (0-1,5-7) + VR (0-19) + FPR (14-31) if used as vector
_properties._numberOfDependencyGPRegisters = 12 + 14 + 5 + 20 + 18;
self()->setOffsetToFirstParm(24);
setOffsetToFirstParm(24);
_properties._offsetToFirstLocal = 24;
}
else
{
// Volatile GPR (0,3-12) + FPR (0-13) + CCR (0-1,5-7) + VR (0-19) + FPR (14-31) if used as vector
_properties._numberOfDependencyGPRegisters = 11 + 14 + 5 + 20 + 18;
self()->setOffsetToFirstParm(8);
setOffsetToFirstParm(8);
_properties._offsetToFirstLocal = 8;
}
}
Expand Down
2 changes: 1 addition & 1 deletion compiler/riscv/codegen/RVSystemLinkage.cpp
Expand Up @@ -183,7 +183,7 @@ TR::RVSystemLinkage::RVSystemLinkage(TR::CodeGenerator *cg)
_properties._framePointerRegister = TR::RealRegister::s0;

_properties._numberOfDependencyGPRegisters = 32; // To be determined
self()->setOffsetToFirstParm(0); // To be determined
setOffsetToFirstParm(0); // To be determined
_properties._offsetToFirstLocal = 0; // To be determined
}

Expand Down
4 changes: 2 additions & 2 deletions compiler/x/amd64/codegen/AMD64SystemLinkage.cpp
Expand Up @@ -167,7 +167,7 @@ TR::AMD64Win64FastCallLinkage::AMD64Win64FastCallLinkage(TR::CodeGenerator *cg)

_properties._framePointerRegister = TR::RealRegister::ebp;
_properties._methodMetaDataRegister = TR::RealRegister::NoReg;
self()->setOffsetToFirstParm(RETURN_ADDRESS_SIZE);
setOffsetToFirstParm(RETURN_ADDRESS_SIZE);
_properties._offsetToFirstLocal = _properties.getAlwaysDedicateFramePointerRegister() ? -GPR_REG_WIDTH : 0;

memset(_properties._registerFlags, 0, sizeof(_properties._registerFlags));
Expand Down Expand Up @@ -361,7 +361,7 @@ TR::AMD64ABILinkage::AMD64ABILinkage(TR::CodeGenerator *cg)

_properties._framePointerRegister = TR::RealRegister::ebp;
_properties._methodMetaDataRegister = TR::RealRegister::NoReg;
self()->setOffsetToFirstParm(RETURN_ADDRESS_SIZE);
setOffsetToFirstParm(RETURN_ADDRESS_SIZE);
_properties._offsetToFirstLocal = _properties.getAlwaysDedicateFramePointerRegister() ? -GPR_REG_WIDTH : 0;

memset(_properties._registerFlags, 0, sizeof(_properties._registerFlags));
Expand Down
2 changes: 1 addition & 1 deletion compiler/x/i386/codegen/IA32SystemLinkage.cpp
Expand Up @@ -127,7 +127,7 @@ TR::IA32SystemLinkage::IA32SystemLinkage(
_properties._numberOfVolatileXMMRegisters = p - _properties._numberOfVolatileGPRegisters;
_properties._numVolatileRegisters = p;

self()->setOffsetToFirstParm(RETURN_ADDRESS_SIZE);
setOffsetToFirstParm(RETURN_ADDRESS_SIZE);
_properties._offsetToFirstLocal = _properties.getAlwaysDedicateFramePointerRegister() ? -GPR_REG_WIDTH : 0;
_properties._OutgoingArgAlignment = IA32_DEFAULT_STACK_ALIGNMENT;

Expand Down
8 changes: 4 additions & 4 deletions compiler/z/codegen/SystemLinkageLinux.cpp
Expand Up @@ -211,28 +211,28 @@ TR::S390zLinuxSystemLinkage::S390zLinuxSystemLinkage(TR::CodeGenerator* cg)
setGPRSaveAreaEndOffset(160);

// x'1c0' see ICST_PAR in tpf/icstk.h
self()->setOffsetToFirstParm(448);
setOffsetToFirstParm(448);
#else
if (cg->comp()->target().is64Bit())
{
setOffsetToRegSaveArea(16);
setGPRSaveAreaBeginOffset(48);
setGPRSaveAreaEndOffset(128);
self()->setOffsetToFirstParm(160);
setOffsetToFirstParm(160);
setOffsetToLongDispSlot(8);
}
else
{
setOffsetToRegSaveArea(8);
setGPRSaveAreaBeginOffset(24);
setGPRSaveAreaEndOffset(64);
self()->setOffsetToFirstParm(96);
setOffsetToFirstParm(96);
setOffsetToLongDispSlot(4);
}
#endif /* defined(OMRZTPF) */

setOffsetToFirstLocal(0);
setOutgoingParmAreaBeginOffset(self()->getOffsetToFirstParm());
setOutgoingParmAreaBeginOffset(getOffsetToFirstParm());
setOutgoingParmAreaEndOffset(0);
setStackFrameSize(0);
setNumberOfDependencyGPRegisters(32);
Expand Down
6 changes: 3 additions & 3 deletions compiler/z/codegen/SystemLinkagezOS.cpp
Expand Up @@ -176,17 +176,17 @@ TR::S390zOSSystemLinkage::S390zOSSystemLinkage(TR::CodeGenerator* cg)

if (cg->comp()->target().is64Bit())
{
self()->setOffsetToFirstParm(XPLINK_STACK_FRAME_BIAS + 128);
setOffsetToFirstParm(XPLINK_STACK_FRAME_BIAS + 128);
}
else
{
self()->setOffsetToFirstParm(XPLINK_STACK_FRAME_BIAS + 64);
setOffsetToFirstParm(XPLINK_STACK_FRAME_BIAS + 64);
}

setOffsetToRegSaveArea(2048);
setOffsetToLongDispSlot(0);
setOffsetToFirstLocal(0);
setOutgoingParmAreaBeginOffset(self()->getOffsetToFirstParm() - XPLINK_STACK_FRAME_BIAS);
setOutgoingParmAreaBeginOffset(getOffsetToFirstParm() - XPLINK_STACK_FRAME_BIAS);
setOutgoingParmAreaEndOffset(0);
setStackFrameSize(0);
setNumberOfDependencyGPRegisters(32);
Expand Down

0 comments on commit 153c209

Please sign in to comment.