1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=sparc-linux-gnu | FileCheck -check-prefix=LINUX-NO-FP %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=sparc-linux-gnu -disable-fp-elim | FileCheck -check-prefix=LINUX-FP %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine void @func() { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker unreachable 7*9880d681SAndroid Build Coastguard Worker} 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker; An empty function is perfectly fine on ELF. 10*9880d681SAndroid Build Coastguard Worker; LINUX-NO-FP: func: 11*9880d681SAndroid Build Coastguard Worker; LINUX-NO-FP-NEXT: .cfi_startproc 12*9880d681SAndroid Build Coastguard Worker; LINUX-NO-FP-NEXT: {{^}}! 13*9880d681SAndroid Build Coastguard Worker; LINUX-NO-FP-NEXT: {{^}}.L{{.*}}:{{$}} 14*9880d681SAndroid Build Coastguard Worker; LINUX-NO-FP-NEXT: .size func, .L{{.*}}-func 15*9880d681SAndroid Build Coastguard Worker; LINUX-NO-FP-NEXT: .cfi_endproc 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker; A cfi directive can point to the end of a function. It (and in fact the 18*9880d681SAndroid Build Coastguard Worker; entire body) could be optimized out because of the unreachable, but we 19*9880d681SAndroid Build Coastguard Worker; don't do it right now. 20*9880d681SAndroid Build Coastguard Worker; LINUX-FP: func: 21*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: .cfi_startproc 22*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: {{^}}! 23*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: save %sp, -96, %sp 24*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 25*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: .cfi_def_cfa_register %fp 26*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 27*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: .cfi_window_save 28*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 29*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: .cfi_register 15, 31 30*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 31*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: .size func, .Lfunc_end0-func 32*9880d681SAndroid Build Coastguard Worker; LINUX-FP-NEXT: .cfi_endproc 33