1f4a2713aSLionel Sambuc // RUN: %clang_cc1 -g -emit-llvm < %s | FileCheck %s
2*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -gline-tables-only -emit-llvm < %s | FileCheck --check-prefix=GMLT %s
3f4a2713aSLionel Sambuc // Two variables with same name in separate scope.
4f4a2713aSLionel Sambuc // Radar 8330217.
main()5f4a2713aSLionel Sambuc int main() {
6f4a2713aSLionel Sambuc int j = 0;
7f4a2713aSLionel Sambuc int k = 0;
8f4a2713aSLionel Sambuc // CHECK: DW_TAG_auto_variable ] [i]
9f4a2713aSLionel Sambuc // CHECK-NEXT: DW_TAG_lexical_block
10*0a6a1f1dSLionel Sambuc
11*0a6a1f1dSLionel Sambuc // FIXME: Looks like we don't actually need both these lexical blocks (disc 2
12*0a6a1f1dSLionel Sambuc // just refers to disc 1, nothing actually uses disc 2).
13*0a6a1f1dSLionel Sambuc // GMLT-NOT: DW_TAG_lexical_block
14*0a6a1f1dSLionel Sambuc // GMLT: "0xb\002", {{.*}}} ; [ DW_TAG_lexical_block ]
15*0a6a1f1dSLionel Sambuc // GMLT-NOT: DW_TAG_lexical_block
16*0a6a1f1dSLionel Sambuc // GMLT: "0xb\001", {{.*}}} ; [ DW_TAG_lexical_block ]
17*0a6a1f1dSLionel Sambuc // Make sure we don't have any more lexical blocks because we don't need them in
18*0a6a1f1dSLionel Sambuc // -gmlt.
19*0a6a1f1dSLionel Sambuc // GMLT-NOT: DW_TAG_lexical_block
20f4a2713aSLionel Sambuc for (int i = 0; i < 10; i++)
21f4a2713aSLionel Sambuc j++;
22f4a2713aSLionel Sambuc // CHECK: DW_TAG_auto_variable ] [i]
23f4a2713aSLionel Sambuc // CHECK-NEXT: DW_TAG_lexical_block
24*0a6a1f1dSLionel Sambuc // GMLT-NOT: DW_TAG_lexical_block
25f4a2713aSLionel Sambuc for (int i = 0; i < 10; i++)
26f4a2713aSLionel Sambuc k++;
27f4a2713aSLionel Sambuc return 0;
28f4a2713aSLionel Sambuc }
29