Add support for the R_ARM_TARGET1 relocation, which should be given to relocations applied to all C++ constructors and destructors.

This enables the linker to match concrete relocation types (absolute or relative) with whatever library or C++ support code is being linked against.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149057 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
James Molloy
2012-01-26 09:25:43 +00:00
parent 668f7ac9e4
commit 34982576a4
8 changed files with 44 additions and 3 deletions

View File

@@ -268,6 +268,12 @@ namespace llvm {
virtual void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV);
/// EmitXXStructor - Targets can override this to change how global constants
/// that are part of a C++ static/global constructor list are emitted.
virtual void EmitXXStructor(const Constant *CV) {
EmitGlobalConstant(CV);
}
/// isBlockOnlyReachableByFallthough - Return true if the basic block has
/// exactly one predecessor and the control transfer mechanism between
/// the predecessor and this block is a fall-through.