# This reproduces a bug in tail duplication when aggressiveCodeToDuplicate
# fails to handle a block with a jump table.

# REQUIRES: system-linux

# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown \
# RUN:   %s -o %t.o
# RUN: link_fdata %s %t.o %t.fdata
# RUN: llvm-strip --strip-unneeded %t.o
# RUN: %clangxx %cflags -no-pie %t.o -o %t.exe -Wl,-q
# RUN: llvm-bolt %t.exe -o %t.out --data %t.fdata --relocs \
# RUN:   --tail-duplication=aggressive \
# RUN:   --print-cfg | FileCheck %s
# CHECK: Jump table {{.*}} for function a at {{.*}} with a total count of 3
  .globl main
main:
  .globl a
  .type a, %function
a:
	.cfi_startproc
b:
  jmp	c
  je	b
  movl	%esi, %edi
c:
	movb	0, %cl
d:
  jmp	e
	movq	0, %r14
f:
	je	d
  jmp	f
e:
g:
j:
	movq	%rbp, 0
h:
	cmpl	$0x41, 0
i:
  jmp	h
  jmp	i
  ja	o
	movl	%edx, 0
p:
q:
k:
  jmpq	*JT0(,%rcx,8)
# FDATA: 1 a #k# 1 a #l# 1 3
m:
	movl	0, %esi
r:
  jmpq	*JT1(,%rax,8)
	cmpl	1, %eax
  jmp	j
l:
  jmp	m
s:
  movl	6, %ebx
ak:
  jmp	e
	movl	0, %eax
am:
  jmp	p
 	jmp	q
o:
  jmp	g
n:
	xorl	%r12d, %r12d
	.cfi_endproc
.rodata
JT0:
	.quad	r
	.quad	l
	.quad	ak
JT1:
	.quad	s
	.quad	am
	.quad	n
