Home | History | Annotate | Download | only in dcl.constexpr
      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