1; RUN: llvm-link %s %S/Inputs/mdlocation.ll -o - -S | FileCheck %s
2
3; Test that MDLocations are remapped properly.
4
5; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !0, !1, !2, !3, !10, !11, !12, !13, !14, !15}
6!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9}
7
8; CHECK:      !0 = !{}
9; CHECK-NEXT: !1 = !MDLocation(line: 3, column: 7, scope: !0)
10; CHECK-NEXT: !2 = !MDLocation(line: 3, column: 7, scope: !0, inlinedAt: !1)
11; CHECK-NEXT: !3 = !MDLocation(line: 3, column: 7, scope: !0, inlinedAt: !2)
12; CHECK-NEXT: !4 = distinct !{}
13; CHECK-NEXT: !5 = !MDLocation(line: 3, column: 7, scope: !4)
14; CHECK-NEXT: !6 = !MDLocation(line: 3, column: 7, scope: !4, inlinedAt: !5)
15; CHECK-NEXT: !7 = !MDLocation(line: 3, column: 7, scope: !4, inlinedAt: !6)
16; CHECK-NEXT: !8 = distinct !MDLocation(line: 3, column: 7, scope: !0)
17; CHECK-NEXT: !9 = distinct !MDLocation(line: 3, column: 7, scope: !0, inlinedAt: !8)
18; CHECK-NEXT: !10 = distinct !{}
19; CHECK-NEXT: !11 = !MDLocation(line: 3, column: 7, scope: !10)
20; CHECK-NEXT: !12 = !MDLocation(line: 3, column: 7, scope: !10, inlinedAt: !11)
21; CHECK-NEXT: !13 = !MDLocation(line: 3, column: 7, scope: !10, inlinedAt: !12)
22; CHECK-NEXT: !14 = distinct !MDLocation(line: 3, column: 7, scope: !0)
23; CHECK-NEXT: !15 = distinct !MDLocation(line: 3, column: 7, scope: !0, inlinedAt: !14)
24!0 = !{} ; Use this as a scope.
25!1 = !MDLocation(line: 3, column: 7, scope: !0)
26!2 = !MDLocation(line: 3, column: 7, scope: !0, inlinedAt: !1)
27!3 = !MDLocation(line: 3, column: 7, scope: !0, inlinedAt: !2)
28!4 = distinct !{} ; Test actual remapping.
29!5 = !MDLocation(line: 3, column: 7, scope: !4)
30!6 = !MDLocation(line: 3, column: 7, scope: !4, inlinedAt: !5)
31!7 = !MDLocation(line: 3, column: 7, scope: !4, inlinedAt: !6)
32; Test distinct nodes.
33!8 = distinct !MDLocation(line: 3, column: 7, scope: !0)
34!9 = distinct !MDLocation(line: 3, column: 7, scope: !0, inlinedAt: !8)
35