inline.c revision dbb5a376c8b9272813a30c5519031e9ea2fb071f
1// RUN: clang %s -emit-llvm -S -o %t -std=c89 && 2// RUN: grep "define available_externally i32 @ei()" %t && 3// RUN: grep "define i32 @foo()" %t && 4// RUN: grep "define i32 @bar()" %t && 5// RUN: grep "define void @unreferenced1()" %t && 6// RUN: not grep unreferenced2 %t && 7 8// RUN: clang %s -emit-llvm -S -o %t -std=c99 && 9// RUN: grep "define available_externally i32 @ei()" %t && 10// RUN: grep "define available_externally i32 @foo()" %t && 11// RUN: grep "define i32 @bar()" %t && 12// RUN: not grep unreferenced %t && 13 14// RUN: clang %s -emit-llvm -S -o %t -std=c++98 && 15// RUN: grep "define available_externally i32 @_Z2eiv()" %t && 16// RUN: grep "define linkonce_odr i32 @_Z3foov()" %t && 17// RUN: grep "define i32 @_Z3barv()" %t && 18// RUN: not grep unreferenced %t 19 20extern inline int ei() { return 123; } 21 22inline int foo() { 23 return ei(); 24} 25 26int bar() { return foo(); } 27 28 29inline void unreferenced1() {} 30extern inline void unreferenced2() {} 31 32