1; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
2; RUN: verify-uselistorder %s
3
4declare void @_Z3foov()
5
6; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9}
7!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9}
8
9!0 = !{null}
10!1 = distinct !MDCompositeType(tag: DW_TAG_structure_type)
11!2 = !MDFile(filename: "path/to/file", directory: "/path/to/dir")
12!3 = !MDSubroutineType(types: !0)
13!4 = distinct !MDCompositeType(tag: DW_TAG_structure_type)
14!5 = distinct !{}
15!6 = distinct !MDSubprogram(isDefinition: false)
16!7 = distinct !{}
17
18; CHECK: !8 = !MDSubprogram(name: "foo", linkageName: "_Zfoov", scope: !1, file: !2, line: 7, type: !3, isLocal: true, isDefinition: false, scopeLine: 8, containingType: !4, virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 10, flags: DIFlagPrototyped, isOptimized: true, function: void ()* @_Z3foov, templateParams: !5, declaration: !6, variables: !7)
19!8 = !MDSubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
20                   file: !2, line: 7, type: !3, isLocal: true,
21                   isDefinition: false, scopeLine: 8, containingType: !4,
22                   virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 10,
23                   flags: DIFlagPrototyped, isOptimized: true, function: void ()* @_Z3foov,
24                   templateParams: !5, declaration: !6, variables: !7)
25
26; CHECK: !9 = !MDSubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false)
27!9 = !MDSubprogram()
28
29