1*acec6419SRahman Lavaee; RUN: llc < %s -mtriple=x86_64 -function-sections -basic-block-address-map | FileCheck %s 2*acec6419SRahman Lavaee 3*acec6419SRahman Lavaee$_Z4fooTIiET_v = comdat any 4*acec6419SRahman Lavaee 5*acec6419SRahman Lavaeedefine dso_local i32 @_Z3barv() { 6*acec6419SRahman Lavaee ret i32 0 7*acec6419SRahman Lavaee} 8*acec6419SRahman Lavaee;; Check we add SHF_LINK_ORDER for .llvm_bb_addr_map and link it with the corresponding .text sections. 9*acec6419SRahman Lavaee; CHECK: .section .text._Z3barv,"ax",@progbits 10*acec6419SRahman Lavaee; CHECK-LABEL: _Z3barv: 11*acec6419SRahman Lavaee; CHECK-NEXT: [[BAR_BEGIN:.Lfunc_begin[0-9]+]]: 12*acec6419SRahman Lavaee; CHECK: .section .llvm_bb_addr_map,"o",@llvm_bb_addr_map,.text._Z3barv{{$}} 13*acec6419SRahman Lavaee; CHECK-NEXT: .byte 2 # version 14*acec6419SRahman Lavaee; CHECK-NEXT: .byte 0 # feature 15*acec6419SRahman Lavaee; CHECK-NEXT: .quad [[BAR_BEGIN]] # function address 16*acec6419SRahman Lavaee 17*acec6419SRahman Lavaee 18*acec6419SRahman Lavaeedefine dso_local i32 @_Z3foov() { 19*acec6419SRahman Lavaee %1 = call i32 @_Z4fooTIiET_v() 20*acec6419SRahman Lavaee ret i32 %1 21*acec6419SRahman Lavaee} 22*acec6419SRahman Lavaee; CHECK: .section .text._Z3foov,"ax",@progbits 23*acec6419SRahman Lavaee; CHECK-LABEL: _Z3foov: 24*acec6419SRahman Lavaee; CHECK-NEXT: [[FOO_BEGIN:.Lfunc_begin[0-9]+]]: 25*acec6419SRahman Lavaee; CHECK: .section .llvm_bb_addr_map,"o",@llvm_bb_addr_map,.text._Z3foov{{$}} 26*acec6419SRahman Lavaee; CHECK-NEXT: .byte 2 # version 27*acec6419SRahman Lavaee; CHECK-NEXT: .byte 0 # feature 28*acec6419SRahman Lavaee; CHECK-NEXT: .quad [[FOO_BEGIN]] # function address 29*acec6419SRahman Lavaee 30*acec6419SRahman Lavaee 31*acec6419SRahman Lavaeedefine linkonce_odr dso_local i32 @_Z4fooTIiET_v() comdat { 32*acec6419SRahman Lavaee ret i32 0 33*acec6419SRahman Lavaee} 34*acec6419SRahman Lavaee;; Check we add .llvm_bb_addr_map section to a COMDAT group with the corresponding .text section if such a COMDAT exists. 35*acec6419SRahman Lavaee; CHECK: .section .text._Z4fooTIiET_v,"axG",@progbits,_Z4fooTIiET_v,comdat 36*acec6419SRahman Lavaee; CHECK-LABEL: _Z4fooTIiET_v: 37*acec6419SRahman Lavaee; CHECK-NEXT: [[FOOCOMDAT_BEGIN:.Lfunc_begin[0-9]+]]: 38*acec6419SRahman Lavaee; CHECK: .section .llvm_bb_addr_map,"oG",@llvm_bb_addr_map,.text._Z4fooTIiET_v,_Z4fooTIiET_v,comdat{{$}} 39*acec6419SRahman Lavaee; CHECK-NEXT: .byte 2 # version 40*acec6419SRahman Lavaee; CHECK-NEXT: .byte 0 # feature 41*acec6419SRahman Lavaee; CHECK-NEXT: .quad [[FOOCOMDAT_BEGIN]] # function address 42