1 // RUN: %clang_cc1 -std=c++11 -emit-llvm %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