1 // RUN: %clang_cc1 -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s 2 3 int &src(); int* sink(); 4 5 void f1() { 6 #line 100 7 * // The store for the assignment should be attributed to the start of the 8 // assignment expression here, regardless of the location of subexpressions. 9 sink() = src(); 10 // CHECK: store {{.*}}, !dbg [[DBG_F1:!.*]] 11 } 12 13 struct foo { 14 int i; 15 int &j; 16 foo(); 17 }; 18 19 foo::foo() 20 : 21 #line 200 22 i 23 (src()), 24 j 25 (src()) 26 // CHECK: store i32 {{.*}} !dbg [[DBG_FOO_VALUE:!.*]] 27 // CHECK: store i32* {{.*}} !dbg [[DBG_FOO_REF:!.*]] 28 { 29 } 30 31 // CHECK: [[DBG_F1]] = metadata !{i32 100, 32 // CHECK: [[DBG_FOO_VALUE]] = metadata !{i32 200, 33 // CHECK: [[DBG_FOO_REF]] = metadata !{i32 202, 34