1 // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -O0 %s -o - 2>&1 -std=c++11 | FileCheck %s 2 3 int gi; 4 5 namespace lambdas { 6 // CHECK-LABEL: define void @_ZN7lambdas7LambdasEPc 7 void Lambdas(char *ptr) { 8 auto L1 = [](void *const p __attribute__((pass_object_size(0)))) { 9 return __builtin_object_size(p, 0); 10 }; 11 12 int i = 0; 13 auto L2 = [&i](void *const p __attribute__((pass_object_size(0)))) { 14 return __builtin_object_size(p, 0) + i; 15 }; 16 17 // CHECK: @llvm.objectsize 18 gi = L1(ptr); 19 // CHECK: @llvm.objectsize 20 gi = L2(ptr); 21 } 22 23 // CHECK-DAG: define internal i64 @"_ZZN7lambdas7LambdasEPcENK3$_0clEPvU17pass_object_size0" 24 // CHECK-NOT: call i64 @llvm.objectsize 25 // CHECK-DAG: define internal i64 @"_ZZN7lambdas7LambdasEPcENK3$_1clEPvU17pass_object_size0" 26 // CHECK-NOT: call i64 @llvm.objectsize 27 } 28