1 // RUN: %clang_cc1 -std=c++11 -emit-llvm -triple %itanium_abi_triple %s -o - | FileCheck %s 2 3 // constexpr functions and constexpr constructors are implicitly inline. 4 struct S { 5 constexpr S(int n); 6 constexpr int g(); 7 int n; 8 }; 9 10 constexpr S::S(int n) : n(n) {} 11 12 constexpr S f(S s) { 13 return s.n * 2; 14 } 15 16 constexpr int S::g() { 17 return f(*this).n; 18 } 19 20 // CHECK: define linkonce_odr {{.*}} @_Z1f1S( 21 // CHECK: define linkonce_odr {{.*}} @_ZN1SC1Ei( 22 // CHECK: define linkonce_odr {{.*}} @_ZNK1S1gEv( 23 24 int g() { 25 return f(42).g(); 26 } 27