David Blaikie | 0b7fad6 | 2014-12-08 21:48:57 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s |
| 2 | |
David Blaikie | 538deff | 2014-12-09 20:52:24 +0000 | [diff] [blame^] | 3 | int &src(); |
| 4 | int* sink(); |
| 5 | __complex float complex_src(); |
David Blaikie | 0b7fad6 | 2014-12-08 21:48:57 +0000 | [diff] [blame] | 6 | |
| 7 | void f1() { |
| 8 | #line 100 |
| 9 | * // The store for the assignment should be attributed to the start of the |
| 10 | // assignment expression here, regardless of the location of subexpressions. |
David Blaikie | 73ca569 | 2014-12-09 00:32:22 +0000 | [diff] [blame] | 11 | sink() = src(); |
| 12 | // CHECK: store {{.*}}, !dbg [[DBG_F1:!.*]] |
David Blaikie | 0b7fad6 | 2014-12-08 21:48:57 +0000 | [diff] [blame] | 13 | } |
| 14 | |
David Blaikie | 73ca569 | 2014-12-09 00:32:22 +0000 | [diff] [blame] | 15 | struct foo { |
| 16 | int i; |
| 17 | int &j; |
David Blaikie | 538deff | 2014-12-09 20:52:24 +0000 | [diff] [blame^] | 18 | __complex float k; |
David Blaikie | 73ca569 | 2014-12-09 00:32:22 +0000 | [diff] [blame] | 19 | foo(); |
| 20 | }; |
| 21 | |
| 22 | foo::foo() |
| 23 | : |
| 24 | #line 200 |
| 25 | i |
| 26 | (src()), |
David Blaikie | 73ca569 | 2014-12-09 00:32:22 +0000 | [diff] [blame] | 27 | // CHECK: store i32 {{.*}} !dbg [[DBG_FOO_VALUE:!.*]] |
David Blaikie | 538deff | 2014-12-09 20:52:24 +0000 | [diff] [blame^] | 28 | j |
| 29 | (src()), |
David Blaikie | 73ca569 | 2014-12-09 00:32:22 +0000 | [diff] [blame] | 30 | // CHECK: store i32* {{.*}} !dbg [[DBG_FOO_REF:!.*]] |
David Blaikie | 538deff | 2014-12-09 20:52:24 +0000 | [diff] [blame^] | 31 | k |
| 32 | (complex_src()) |
| 33 | // CHECK: store float {{.*}} !dbg [[DBG_FOO_COMPLEX:!.*]] |
David Blaikie | 73ca569 | 2014-12-09 00:32:22 +0000 | [diff] [blame] | 34 | { |
| 35 | } |
| 36 | |
| 37 | // CHECK: [[DBG_F1]] = metadata !{i32 100, |
| 38 | // CHECK: [[DBG_FOO_VALUE]] = metadata !{i32 200, |
David Blaikie | 538deff | 2014-12-09 20:52:24 +0000 | [diff] [blame^] | 39 | // CHECK: [[DBG_FOO_REF]] = metadata !{i32 203, |
| 40 | // CHECK: [[DBG_FOO_COMPLEX]] = metadata !{i32 206, |