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