1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -triple x86_64-pc-linux -emit-llvm %s -o - | FileCheck %s 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuc extern void foo_alias (void) __asm ("foo"); foo(void)4*f4a2713aSLionel Sambucinline void foo (void) { 5*f4a2713aSLionel Sambuc return foo_alias (); 6*f4a2713aSLionel Sambuc } 7*f4a2713aSLionel Sambuc extern void bar_alias (void) __asm ("bar"); bar(void)8*f4a2713aSLionel Sambucinline __attribute__ ((__always_inline__)) void bar (void) { 9*f4a2713aSLionel Sambuc return bar_alias (); 10*f4a2713aSLionel Sambuc } 11*f4a2713aSLionel Sambuc extern char *strrchr_foo (const char *__s, int __c) __asm ("strrchr"); strrchr_foo(const char * __s,int __c)12*f4a2713aSLionel Sambucextern inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char * strrchr_foo (const char *__s, int __c) { 13*f4a2713aSLionel Sambuc return __builtin_strrchr (__s, __c); 14*f4a2713aSLionel Sambuc } f(void)15*f4a2713aSLionel Sambucvoid f(void) { 16*f4a2713aSLionel Sambuc foo(); 17*f4a2713aSLionel Sambuc bar(); 18*f4a2713aSLionel Sambuc strrchr_foo("", '.'); 19*f4a2713aSLionel Sambuc } 20*f4a2713aSLionel Sambuc 21*f4a2713aSLionel Sambuc // CHECK-LABEL: define void @f() 22*f4a2713aSLionel Sambuc // CHECK: call void @foo() 23*f4a2713aSLionel Sambuc // CHECK-NEXT: call void @bar() 24*f4a2713aSLionel Sambuc // CHECK-NEXT: call i8* @strrchr( 25*f4a2713aSLionel Sambuc // CHECK-NEXT: ret void 26*f4a2713aSLionel Sambuc 27*f4a2713aSLionel Sambuc // CHECK: declare void @foo() 28*f4a2713aSLionel Sambuc // CHECK: declare void @bar() 29*f4a2713aSLionel Sambuc // CHECK: declare i8* @strrchr(i8*, i32) 30