// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin10 -O3 | FileCheck %s struct A { virtual int f() { return 1; } }; struct B : A { B() : i(f()) { } virtual int f() { return 2; } int i; }; // CHECK-LABEL: define i32 @_Z1fv() #0 int f() { B b; // CHECK: ret i32 2 return b.i; } // Test that we don't try to fold the default value of j when initializing i. // CHECK: define i32 @_Z9test_foldv() [[NUW_RN:#[0-9]+]] int test_fold() { struct A { A(const int j = 1) : i(j) { } int i; }; // CHECK: ret i32 2 return A(2).i; } // CHECK: attributes [[NUW_RN]] = { nounwind readnone{{.*}} }