Always create a temporary symbol to use with the cfi frame.

This is a small simplification and a small step in fixing pr18743 since
private functions on MachO should be using a 'l' prefix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200994 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2014-02-07 21:23:18 +00:00
parent d413950a93
commit 26baaa1efb
2 changed files with 11 additions and 15 deletions

View File

@ -267,15 +267,9 @@ void MCStreamer::EmitCFIStartProcImpl(MCDwarfFrameInfo &Frame) {
void MCStreamer::RecordProcStart(MCDwarfFrameInfo &Frame) {
Frame.Function = LastSymbol;
// If the function is externally visible, we need to create a local
// symbol to avoid relocations.
StringRef Prefix = getContext().getAsmInfo()->getPrivateGlobalPrefix();
if (LastSymbol && LastSymbol->getName().startswith(Prefix)) {
Frame.Begin = LastSymbol;
} else {
Frame.Begin = getContext().CreateTempSymbol();
EmitLabel(Frame.Begin);
}
// We need to create a local symbol to avoid relocations.
Frame.Begin = getContext().CreateTempSymbol();
EmitLabel(Frame.Begin);
}
void MCStreamer::EmitCFIEndProc() {

View File

@ -15,35 +15,37 @@ define void @bar() {
}
; CHECK: L_foo: ## @foo
; CHECK-NEXT: Ltmp0:
; CHECK: _bar: ## @bar
; CHECK-NEXT: Ltmp2:
; CHECK-NEXT: Ltmp3:
; CHECK: ## FDE CIE Offset
; CHECK-NEXT: .long
; CHECK-NEXT: Ltmp[[NUM1:[0-9]*]]:
; CHECK-NEXT: Ltmp[[NUM2:[0-9]*]] = L_foo-Ltmp[[NUM1]] ## FDE initial location
; CHECK-NEXT: Ltmp[[NUM2:[0-9]*]] = Ltmp0-Ltmp[[NUM1]] ## FDE initial location
; CHECK-NEXT: {{.quad|.long}} Ltmp[[NUM2]]
; CHECK: ## FDE CIE Offset
; CHECK-NEXT: .long
; CHECK-NEXT: Ltmp[[NUM1:[0-9]*]]:
; CHECK-NEXT: Ltmp[[NUM2:[0-9]*]] = Ltmp2-Ltmp[[NUM1]] ## FDE initial location
; CHECK-NEXT: Ltmp[[NUM2:[0-9]*]] = Ltmp3-Ltmp[[NUM1]] ## FDE initial location
; CHECK-NEXT: {{.quad|.long}} Ltmp[[NUM2]]
; OLD: L_foo: ## @foo
; OLD-NEXT: Ltmp0:
; OLD: _bar: ## @bar
; OLD-NEXT: Ltmp2:
; OLD-NEXT: Ltmp3:
; OLD: ## FDE CIE Offset
; OLD-NEXT: .long
; OLD-NEXT: Ltmp[[NUM1:[0-9]*]]:
; OLD-NEXT: {{.quad|.long}} L_foo-Ltmp[[NUM1]] ## FDE initial location
; OLD-NEXT: {{.quad|.long}} Ltmp0-Ltmp[[NUM1]] ## FDE initial location
; OLD: ## FDE CIE Offset
; OLD-NEXT: .long
; OLD-NEXT: Ltmp[[NUM1:[0-9]*]]:
; OLD-NEXT: {{.quad|.long}} Ltmp2-Ltmp[[NUM1]] ## FDE initial location
; OLD-NEXT: {{.quad|.long}} Ltmp3-Ltmp[[NUM1]] ## FDE initial location