Home | History | Annotate | Download | only in CodeGen
      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-LABEL: 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