Devang Patel | 0554e0e | 2010-08-25 00:28:56 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -g -emit-llvm < %s | FileCheck %s |
Yunzhong Gao | 51a31e1 | 2013-08-30 05:37:02 +0000 | [diff] [blame^] | 2 | |
| 3 | // Make sure that the debug info of the local variable d does not shadow |
| 4 | // the global variable d |
| 5 | // CHECK: [ DW_TAG_variable ] [d] [line 6] [def] |
| 6 | const int d = 100; |
| 7 | |
Devang Patel | 0554e0e | 2010-08-25 00:28:56 +0000 | [diff] [blame] | 8 | // Two variables with same name in separate scope. |
| 9 | // Radar 8330217. |
| 10 | int main() { |
Yunzhong Gao | 51a31e1 | 2013-08-30 05:37:02 +0000 | [diff] [blame^] | 11 | // CHECK-NOT: [ DW_TAG_variable ] [d] [line 13] |
| 12 | // CHECK: [ DW_TAG_auto_variable ] [d] [line 13] |
| 13 | const int d = 4; |
Devang Patel | 0554e0e | 2010-08-25 00:28:56 +0000 | [diff] [blame] | 14 | int j = 0; |
| 15 | int k = 0; |
David Blaikie | a650485 | 2013-01-26 22:16:26 +0000 | [diff] [blame] | 16 | // CHECK: DW_TAG_auto_variable ] [i] |
Devang Patel | 0554e0e | 2010-08-25 00:28:56 +0000 | [diff] [blame] | 17 | // CHECK-NEXT: DW_TAG_lexical_block |
| 18 | for (int i = 0; i < 10; i++) |
| 19 | j++; |
David Blaikie | a650485 | 2013-01-26 22:16:26 +0000 | [diff] [blame] | 20 | // CHECK: DW_TAG_auto_variable ] [i] |
| 21 | // CHECK-NEXT: DW_TAG_lexical_block |
Devang Patel | 0554e0e | 2010-08-25 00:28:56 +0000 | [diff] [blame] | 22 | for (int i = 0; i < 10; i++) |
| 23 | k++; |
Yunzhong Gao | 51a31e1 | 2013-08-30 05:37:02 +0000 | [diff] [blame^] | 24 | return d; // make a reference to d so that its debug info gets included |
Devang Patel | 0554e0e | 2010-08-25 00:28:56 +0000 | [diff] [blame] | 25 | } |