diff options
Diffstat (limited to 'test/Assembler')
48 files changed, 191 insertions, 122 deletions
diff --git a/test/Assembler/2007-09-10-AliasFwdRef.ll b/test/Assembler/2007-09-10-AliasFwdRef.ll index 8e0a5718058c4..882569b2f24e9 100644 --- a/test/Assembler/2007-09-10-AliasFwdRef.ll +++ b/test/Assembler/2007-09-10-AliasFwdRef.ll @@ -3,7 +3,7 @@ ; PR1645 @__gthread_active_ptr.5335 = internal constant i8* bitcast (i32 (i32)* @__gthrw_pthread_cancel to i8*) -@__gthrw_pthread_cancel = weak alias i32 (i32)* @pthread_cancel +@__gthrw_pthread_cancel = weak alias i32 (i32), i32 (i32)* @pthread_cancel diff --git a/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll b/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll index 8a6735fbca48f..0a2462610acbf 100644 --- a/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll +++ b/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll @@ -10,7 +10,7 @@ target triple = "x86_64-apple-darwin10.2" @TestArrayPtr = global %struct.test* getelementptr inbounds ([10 x %struct.test], [10 x %struct.test]* @TestArray, i64 0, i64 3) ; <%struct.test**> [#uses=1] @TestArray = common global [10 x %struct.test] zeroinitializer, align 32 ; <[10 x %struct.test]*> [#uses=2] -define i32 @main() nounwind readonly { +define i32 @main() nounwind readonly !dbg !1 { %diff1 = alloca i64 ; <i64*> [#uses=2] ; CHECK: call void @llvm.dbg.value(metadata i64 72, call void @llvm.dbg.declare(metadata i64* %diff1, metadata !0, metadata !DIExpression()), !dbg !DILocation(scope: !1) @@ -25,9 +25,9 @@ define i32 @main() nounwind readonly { declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone !7 = !{!1} -!6 = !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 131941)", isOptimized: true, emissionKind: 0, file: !8, enums: !9, retainedTypes: !9, subprograms: !7) -!0 = !DILocalVariable(tag: DW_TAG_auto_variable, name: "c", line: 2, scope: !1, file: !2, type: !5) -!1 = !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !8, scope: !2, type: !3, function: i32 ()* @main) +!6 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 131941)", isOptimized: true, emissionKind: 0, file: !8, enums: !9, retainedTypes: !9, subprograms: !7) +!0 = !DILocalVariable(name: "c", line: 2, scope: !1, file: !2, type: !5) +!1 = distinct !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !8, scope: !2, type: !3) !2 = !DIFile(filename: "/d/j/debug-test.c", directory: "/Volumes/Data/b") !3 = !DISubroutineType(types: !4) !4 = !{!5} diff --git a/test/Assembler/ConstantExprFoldCast.ll b/test/Assembler/ConstantExprFoldCast.ll index 094f87be92cff..dfe840cc37dd6 100644 --- a/test/Assembler/ConstantExprFoldCast.ll +++ b/test/Assembler/ConstantExprFoldCast.ll @@ -15,3 +15,7 @@ ; Address space cast AS0 null-> AS1 null @H = global i32 addrspace(1)* addrspacecast(i32* null to i32 addrspace(1)*) + +; Bitcast -> GEP +@I = external global { i32 } +@J = global i32* bitcast ({ i32 }* @I to i32*) diff --git a/test/Assembler/ConstantExprNoFold.ll b/test/Assembler/ConstantExprNoFold.ll index 38f8cbbc9cd86..6b06a8fbb75fc 100644 --- a/test/Assembler/ConstantExprNoFold.ll +++ b/test/Assembler/ConstantExprNoFold.ll @@ -43,8 +43,8 @@ target datalayout = "p:32:32" @empty.cmp = global i1 icmp eq ([0 x i8]* @empty.1, [0 x i8]* @empty.2) ; Don't add an inbounds on @glob.a3, since it's not inbounds. -; CHECK: @glob.a3 = alias getelementptr (i32, i32* @glob.a2, i32 1) +; CHECK: @glob.a3 = alias i32, getelementptr (i32, i32* @glob.a2, i32 1) @glob = global i32 0 -@glob.a3 = alias getelementptr (i32, i32* @glob.a2, i32 1) -@glob.a2 = alias getelementptr (i32, i32* @glob.a1, i32 1) -@glob.a1 = alias i32* @glob +@glob.a3 = alias i32, getelementptr (i32, i32* @glob.a2, i32 1) +@glob.a2 = alias i32, getelementptr (i32, i32* @glob.a1, i32 1) +@glob.a1 = alias i32, i32* @glob diff --git a/test/Assembler/addrspacecast-alias.ll b/test/Assembler/addrspacecast-alias.ll index 745e525c15f49..32eb5b9d48680 100644 --- a/test/Assembler/addrspacecast-alias.ll +++ b/test/Assembler/addrspacecast-alias.ll @@ -4,5 +4,5 @@ ; Test that global aliases are allowed to be constant addrspacecast @i = internal addrspace(1) global i8 42 -@ia = internal alias addrspacecast (i8 addrspace(1)* @i to i8 addrspace(2)* addrspace(3)*) -; CHECK: @ia = internal alias addrspacecast (i8 addrspace(2)* addrspace(1)* bitcast (i8 addrspace(1)* @i to i8 addrspace(2)* addrspace(1)*) to i8 addrspace(2)* addrspace(3)*) +@ia = internal alias i8 addrspace(2)*, addrspacecast (i8 addrspace(1)* @i to i8 addrspace(2)* addrspace(3)*) +; CHECK: @ia = internal alias i8 addrspace(2)*, addrspacecast (i8 addrspace(2)* addrspace(1)* bitcast (i8 addrspace(1)* @i to i8 addrspace(2)* addrspace(1)*) to i8 addrspace(2)* addrspace(3)*) diff --git a/test/Assembler/alias-redefinition.ll b/test/Assembler/alias-redefinition.ll index 19ad85bf5f5bd..3c36c81d81382 100644 --- a/test/Assembler/alias-redefinition.ll +++ b/test/Assembler/alias-redefinition.ll @@ -1,7 +1,7 @@ ; RUN: not llvm-as %s 2>&1 | FileCheck %s -; CHECK: error: redefinition of global named '@bar' +; CHECK: error: redefinition of global '@bar' @foo = global i32 0 -@bar = alias i32* @foo -@bar = alias i32* @foo +@bar = alias i32, i32* @foo +@bar = alias i32, i32* @foo diff --git a/test/Assembler/alias-use-list-order.ll b/test/Assembler/alias-use-list-order.ll index c72bad28e500a..7e72e450a750c 100644 --- a/test/Assembler/alias-use-list-order.ll +++ b/test/Assembler/alias-use-list-order.ll @@ -6,6 +6,6 @@ @alias.ref2 = global i32* getelementptr inbounds (i32, i32* @alias, i64 1) ; Aliases. -@alias = alias i32* @global -@alias.ref3 = alias i32* getelementptr inbounds (i32, i32* @alias, i64 1) -@alias.ref4 = alias i32* getelementptr inbounds (i32, i32* @alias, i64 1) +@alias = alias i32, i32* @global +@alias.ref3 = alias i32, getelementptr inbounds (i32, i32* @alias, i64 1) +@alias.ref4 = alias i32, getelementptr inbounds (i32, i32* @alias, i64 1) diff --git a/test/Assembler/anon-functions.ll b/test/Assembler/anon-functions.ll index 42eea837227a8..2352a00f57d28 100644 --- a/test/Assembler/anon-functions.ll +++ b/test/Assembler/anon-functions.ll @@ -5,8 +5,8 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" target triple = "x86_64-unknown-linux-gnu" -@f = alias void ()* @0 ; <void ()*> [#uses=0] -@g = alias void ()* @1 ; <void ()*> [#uses=0] +@f = alias void (), void ()* @0 ; <void ()*> [#uses=0] +@g = alias void (), void ()* @1 ; <void ()*> [#uses=0] @h = external global void ()* ; <void ()*> [#uses=0] define internal void @0() nounwind { diff --git a/test/Assembler/debug-info.ll b/test/Assembler/debug-info.ll index 91dfe561a2fe0..86630840dc201 100644 --- a/test/Assembler/debug-info.ll +++ b/test/Assembler/debug-info.ll @@ -1,8 +1,8 @@ ; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s ; RUN: verify-uselistorder %s -; CHECK: !named = !{!0, !0, !1, !2, !3, !4, !5, !6, !7, !8, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !27} -!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30} +; CHECK: !named = !{!0, !0, !1, !2, !3, !4, !5, !6, !7, !8, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !27, !28, !29, !30, !31} +!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34} ; CHECK: !0 = !DISubrange(count: 3) ; CHECK-NEXT: !1 = !DISubrange(count: 3, lowerBound: 4) @@ -63,10 +63,19 @@ !25 = !DICompositeType(tag: DW_TAG_structure_type) !26 = !DICompositeType(tag: DW_TAG_structure_type, runtimeLang: 6) -; !25 = !{!7, !7} -; !26 = !DISubroutineType(flags: DIFlagPublic | DIFlagStaticMember, types: !25) -; !27 = !DISubroutineType(types: !25) +; CHECK-NEXT: !25 = !{!6, !6} +; CHECK-NEXT: !26 = !DISubroutineType(flags: DIFlagPublic | DIFlagStaticMember, types: !25) +; CHECK-NEXT: !27 = !DISubroutineType(types: !25) !27 = !{!7, !7} !28 = !DISubroutineType(flags: DIFlagPublic | DIFlagStaticMember, types: !27) !29 = !DISubroutineType(flags: 0, types: !27) !30 = !DISubroutineType(types: !27) + +; CHECK-NEXT: !28 = !DIMacro(type: DW_MACINFO_define, line: 9, name: "Name", value: "Value") +; CHECK-NEXT: !29 = distinct !{!28} +; CHECK-NEXT: !30 = !DIMacroFile(line: 9, file: !12, nodes: !29) +; CHECK-NEXT: !31 = !DIMacroFile(line: 11, file: !12) +!31 = !DIMacro(type: DW_MACINFO_define, line: 9, name: "Name", value: "Value") +!32 = distinct !{!31} +!33 = !DIMacroFile(line: 9, file: !14, nodes: !32) +!34 = !DIMacroFile(type: DW_MACINFO_start_file, line: 11, file: !14) diff --git a/test/Assembler/dicompileunit.ll b/test/Assembler/dicompileunit.ll index dc136f0b83e9a..92fa61fe6b906 100644 --- a/test/Assembler/dicompileunit.ll +++ b/test/Assembler/dicompileunit.ll @@ -1,8 +1,8 @@ ; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s ; RUN: verify-uselistorder %s -; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !7, !8, !8} -!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10} +; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9} +!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9} !0 = distinct !{} !1 = !DIFile(filename: "path/to/file", directory: "/path/to/dir") @@ -11,21 +11,16 @@ !4 = distinct !{} !5 = distinct !{} !6 = distinct !{} +!7 = distinct !{} -; CHECK: !7 = !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", isOptimized: true, flags: "-O2", runtimeVersion: 2, splitDebugFilename: "abc.debug", emissionKind: 3, enums: !2, retainedTypes: !3, subprograms: !4, globals: !5, imports: !6, dwoId: 42) -!7 = !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", - isOptimized: true, flags: "-O2", runtimeVersion: 2, - splitDebugFilename: "abc.debug", emissionKind: 3, - enums: !2, retainedTypes: !3, subprograms: !4, - globals: !5, imports: !6, dwoId: 42) -!8 = !DICompileUnit(language: 12, file: !1, producer: "clang", - isOptimized: true, flags: "-O2", runtimeVersion: 2, - splitDebugFilename: "abc.debug", emissionKind: 3, - enums: !2, retainedTypes: !3, subprograms: !4, - globals: !5, imports: !6, dwoId: 42) +; CHECK: !8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", isOptimized: true, flags: "-O2", runtimeVersion: 2, splitDebugFilename: "abc.debug", emissionKind: 3, enums: !2, retainedTypes: !3, subprograms: !4, globals: !5, imports: !6, macros: !7, dwoId: 42) +!8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", + isOptimized: true, flags: "-O2", runtimeVersion: 2, + splitDebugFilename: "abc.debug", emissionKind: 3, + enums: !2, retainedTypes: !3, subprograms: !4, + globals: !5, imports: !6, macros: !7, dwoId: 42) -; CHECK: !8 = !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: 0) -!9 = !DICompileUnit(language: 12, file: !1, producer: "", - isOptimized: false, flags: "", runtimeVersion: 0, - splitDebugFilename: "", emissionKind: 0) -!10 = !DICompileUnit(language: 12, file: !1) +; CHECK: !9 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: 0) +!9 = distinct !DICompileUnit(language: 12, file: !1, producer: "", + isOptimized: false, flags: "", runtimeVersion: 0, + splitDebugFilename: "", emissionKind: 0) diff --git a/test/Assembler/diimportedentity.ll b/test/Assembler/diimportedentity.ll index 929267e3b25e5..334eb20daedee 100644 --- a/test/Assembler/diimportedentity.ll +++ b/test/Assembler/diimportedentity.ll @@ -4,9 +4,9 @@ ; CHECK: !named = !{!0, !1, !2, !3, !3} !named = !{!0, !1, !2, !3, !4} -; CHECK: !0 = !DISubprogram({{.*}}) +; CHECK: !0 = distinct !DISubprogram({{.*}}) ; CHECK-NEXT: !1 = !DICompositeType({{.*}}) -!0 = !DISubprogram(name: "foo") +!0 = distinct !DISubprogram(name: "foo") !1 = !DICompositeType(tag: DW_TAG_structure_type, name: "Class", size: 32, align: 32) ; CHECK-NEXT: !2 = !DIImportedEntity(tag: DW_TAG_imported_module, name: "foo", scope: !0, entity: !1, line: 7) diff --git a/test/Assembler/dilexicalblock.ll b/test/Assembler/dilexicalblock.ll index 2cab372384caa..9e1ab64fd51ed 100644 --- a/test/Assembler/dilexicalblock.ll +++ b/test/Assembler/dilexicalblock.ll @@ -5,7 +5,7 @@ !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9} !0 = distinct !{} -!1 = !DISubprogram(name: "foo", scope: !2) +!1 = distinct !DISubprogram(name: "foo", scope: !2) !2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir") ; CHECK: !3 = !DILexicalBlock(scope: !1, file: !2, line: 7, column: 35) diff --git a/test/Assembler/dilocalvariable-arg-large.ll b/test/Assembler/dilocalvariable-arg-large.ll index 7788186a54ab3..a4c3f8c97630e 100644 --- a/test/Assembler/dilocalvariable-arg-large.ll +++ b/test/Assembler/dilocalvariable-arg-large.ll @@ -6,5 +6,5 @@ !0 = distinct !DISubprogram() -; CHECK: !1 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "foo", arg: 65535, scope: !0) -!1 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "foo", arg: 65535, scope: !0) +; CHECK: !1 = !DILocalVariable(name: "foo", arg: 65535, scope: !0) +!1 = !DILocalVariable(name: "foo", arg: 65535, scope: !0) diff --git a/test/Assembler/dilocalvariable.ll b/test/Assembler/dilocalvariable.ll index 312373ca8623a..d286dd92a4024 100644 --- a/test/Assembler/dilocalvariable.ll +++ b/test/Assembler/dilocalvariable.ll @@ -12,15 +12,15 @@ !3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !4 = !DILocation(scope: !0) -; CHECK: !5 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "foo", arg: 3, scope: !0, file: !2, line: 7, type: !3, flags: DIFlagArtificial) -; CHECK: !6 = !DILocalVariable(tag: DW_TAG_auto_variable, name: "foo", scope: !0, file: !2, line: 7, type: !3, flags: DIFlagArtificial) -!5 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "foo", arg: 3, +; CHECK: !5 = !DILocalVariable(name: "foo", arg: 3, scope: !0, file: !2, line: 7, type: !3, flags: DIFlagArtificial) +; CHECK: !6 = !DILocalVariable(name: "foo", scope: !0, file: !2, line: 7, type: !3, flags: DIFlagArtificial) +!5 = !DILocalVariable(name: "foo", arg: 3, scope: !0, file: !2, line: 7, type: !3, flags: DIFlagArtificial) -!6 = !DILocalVariable(tag: DW_TAG_auto_variable, name: "foo", scope: !0, +!6 = !DILocalVariable(name: "foo", scope: !0, file: !2, line: 7, type: !3, flags: DIFlagArtificial) -; CHECK: !7 = !DILocalVariable(tag: DW_TAG_arg_variable, arg: 0, scope: !0) -; CHECK: !8 = !DILocalVariable(tag: DW_TAG_auto_variable, scope: !0) -!7 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !0) -!8 = !DILocalVariable(tag: DW_TAG_auto_variable, scope: !0) +; CHECK: !7 = !DILocalVariable(arg: 1, scope: !0) +; CHECK: !8 = !DILocalVariable(scope: !0) +!7 = !DILocalVariable(scope: !0, arg: 1) +!8 = !DILocalVariable(scope: !0) diff --git a/test/Assembler/dilocation.ll b/test/Assembler/dilocation.ll index a468f8abe9c6e..b177be5902461 100644 --- a/test/Assembler/dilocation.ll +++ b/test/Assembler/dilocation.ll @@ -4,8 +4,8 @@ ; CHECK: !named = !{!0, !1, !1, !2, !2, !3, !3, !4} !named = !{!0, !1, !2, !3, !4, !5, !6, !7} -; CHECK: !0 = !DISubprogram( -!0 = !DISubprogram() +; CHECK: !0 = distinct !DISubprogram( +!0 = distinct !DISubprogram() ; CHECK-NEXT: !1 = !DILocation(line: 3, column: 7, scope: !0) !1 = !DILocation(line: 3, column: 7, scope: !0) diff --git a/test/Assembler/disubprogram.ll b/test/Assembler/disubprogram.ll index 3fa1081889ffe..af60f52eb2102 100644 --- a/test/Assembler/disubprogram.ll +++ b/test/Assembler/disubprogram.ll @@ -1,7 +1,10 @@ ; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s ; RUN: verify-uselistorder %s -declare void @_Z3foov() +; CHECK: define void @_Z3foov() !dbg !9 +define void @_Z3foov() !dbg !9 { + ret void +} ; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9} !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9} @@ -12,17 +15,21 @@ declare void @_Z3foov() !3 = !DISubroutineType(types: !0) !4 = distinct !DICompositeType(tag: DW_TAG_structure_type) !5 = distinct !{} -!6 = distinct !DISubprogram(isDefinition: false) -!7 = distinct !{} +!6 = distinct !{} -; CHECK: !8 = !DISubprogram(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) -!8 = !DISubprogram(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) +; CHECK: !7 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false) +!7 = distinct !DISubprogram() -; CHECK: !9 = !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false) -!9 = !DISubprogram() +; CHECK: !8 = !DISubprogram(scope: null, isLocal: false, isDefinition: false, isOptimized: false) +!8 = !DISubprogram(isDefinition: false) +; CHECK: !9 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1, file: !2, line: 7, type: !3, isLocal: true, isDefinition: true, scopeLine: 8, containingType: !4, virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 10, flags: DIFlagPrototyped, isOptimized: true, templateParams: !5, declaration: !8, variables: !6) +!9 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1, + file: !2, line: 7, type: !3, isLocal: true, + isDefinition: true, scopeLine: 8, containingType: !4, + virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 10, + flags: DIFlagPrototyped, isOptimized: true, + templateParams: !5, declaration: !8, variables: !6) + +!10 = !{i32 1, !"Debug Info Version", i32 3} +!llvm.module.flags = !{!10} diff --git a/test/Assembler/drop-debug-info.ll b/test/Assembler/drop-debug-info.ll index 44a7b78b004d1..13e0c32718e74 100644 --- a/test/Assembler/drop-debug-info.ll +++ b/test/Assembler/drop-debug-info.ll @@ -2,7 +2,7 @@ ; RUN: llvm-dis < %t.bc | FileCheck %s ; RUN: verify-uselistorder < %t.bc -define i32 @main() { +define i32 @main() !dbg !4 { entry: %retval = alloca i32, align 4 store i32 0, i32* %retval @@ -12,11 +12,11 @@ entry: !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!9} -!0 = !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 (trunk 195495) (llvm/trunk 195495:195504M)", isOptimized: false, emissionKind: 0, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 (trunk 195495) (llvm/trunk 195495:195504M)", isOptimized: false, emissionKind: 0, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) !1 = !DIFile(filename: "../llvm/tools/clang/test/CodeGen/debug-info-version.c", directory: "/Users/manmanren/llvm_gmail/release") !2 = !{i32 0} !3 = !{!4} -!4 = !DISubprogram(name: "main", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 3, file: !1, scope: !5, type: !6, function: i32 ()* @main, variables: !2) +!4 = distinct !DISubprogram(name: "main", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 3, file: !1, scope: !5, type: !6, variables: !2) !5 = !DIFile(filename: "../llvm/tools/clang/test/CodeGen/debug-info-version.c", directory: "/Users/manmanren/llvm_gmail/release") !6 = !DISubroutineType(types: !7) !7 = !{!8} diff --git a/test/Assembler/global-addrspace-forwardref.ll b/test/Assembler/global-addrspace-forwardref.ll index 4a036e08be6a2..c66b5b73066f0 100644 --- a/test/Assembler/global-addrspace-forwardref.ll +++ b/test/Assembler/global-addrspace-forwardref.ll @@ -7,3 +7,12 @@ ; CHECK: @a = addrspace(1) global i8 0 @a2 = global i8 addrspace(1)* @a @a = addrspace(1) global i8 0 + +; Now test with global IDs instead of global names. + +; CHECK: @a3 = global i8 addrspace(1)* @0 +; CHECK: @0 = addrspace(1) global i8 0 + +@a3 = global i8 addrspace(1)* @0 +@0 = addrspace(1) global i8 0 + diff --git a/test/Assembler/incorrect-tdep-attrs-parsing.ll b/test/Assembler/incorrect-tdep-attrs-parsing.ll new file mode 100644 index 0000000000000..bf8152b69dc08 --- /dev/null +++ b/test/Assembler/incorrect-tdep-attrs-parsing.ll @@ -0,0 +1,6 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +; CHECK: define i32 @f(i64 "foo bar", i64, i64, i64 "xyz") { +define i32 @f(i64 "foo bar", i64, i64, i64 "xyz") { + ret i32 41 +} diff --git a/test/Assembler/internal-hidden-alias.ll b/test/Assembler/internal-hidden-alias.ll index df547c0838cb4..f5bf4fb869e44 100644 --- a/test/Assembler/internal-hidden-alias.ll +++ b/test/Assembler/internal-hidden-alias.ll @@ -2,5 +2,5 @@ @global = global i32 0 -@alias = internal hidden alias i32* @global +@alias = internal hidden alias i32, i32* @global ; CHECK: symbol with local linkage must have default visibility diff --git a/test/Assembler/internal-protected-alias.ll b/test/Assembler/internal-protected-alias.ll index 46a05ec732f52..37e90a0de1c33 100644 --- a/test/Assembler/internal-protected-alias.ll +++ b/test/Assembler/internal-protected-alias.ll @@ -2,5 +2,5 @@ @global = global i32 0 -@alias = internal protected alias i32* @global +@alias = internal protected alias i32, i32* @global ; CHECK: symbol with local linkage must have default visibility diff --git a/test/Assembler/invalid-alias-mismatched-explicit-type.ll b/test/Assembler/invalid-alias-mismatched-explicit-type.ll new file mode 100644 index 0000000000000..d28223793082e --- /dev/null +++ b/test/Assembler/invalid-alias-mismatched-explicit-type.ll @@ -0,0 +1,4 @@ +; RUN: not llvm-as < %s 2>&1 | FileCheck %s +; CHECK: <stdin>:4:12: error: explicit pointee type doesn't match operand's pointee type +@y = global i2 0 +@x = alias i1, i2* @y diff --git a/test/Assembler/invalid-dicompileunit-language-bad.ll b/test/Assembler/invalid-dicompileunit-language-bad.ll index e6f49f3fba476..98c04833e78a0 100644 --- a/test/Assembler/invalid-dicompileunit-language-bad.ll +++ b/test/Assembler/invalid-dicompileunit-language-bad.ll @@ -1,5 +1,5 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s -; CHECK: <stdin>:[[@LINE+1]]:31: error: invalid DWARF language 'DW_LANG_NoSuchLanguage' -!0 = !DICompileUnit(language: DW_LANG_NoSuchLanguage, - file: !DIFile(filename: "a", directory: "b")) +; CHECK: <stdin>:[[@LINE+1]]:40: error: invalid DWARF language 'DW_LANG_NoSuchLanguage' +!0 = distinct !DICompileUnit(language: DW_LANG_NoSuchLanguage, + file: !DIFile(filename: "a", directory: "b")) diff --git a/test/Assembler/invalid-dicompileunit-language-overflow.ll b/test/Assembler/invalid-dicompileunit-language-overflow.ll index c558f7aaa2587..26b98e10d350b 100644 --- a/test/Assembler/invalid-dicompileunit-language-overflow.ll +++ b/test/Assembler/invalid-dicompileunit-language-overflow.ll @@ -1,9 +1,9 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s ; CHECK-NOT: error: -!0 = !DICompileUnit(language: 65535, - file: !DIFile(filename: "a", directory: "b")) +!0 = distinct !DICompileUnit(language: 65535, + file: !DIFile(filename: "a", directory: "b")) -; CHECK: <stdin>:[[@LINE+1]]:31: error: value for 'language' too large, limit is 65535 -!1 = !DICompileUnit(language: 65536, - file: !DIFile(filename: "a", directory: "b")) +; CHECK: <stdin>:[[@LINE+1]]:40: error: value for 'language' too large, limit is 65535 +!1 = distinct !DICompileUnit(language: 65536, + file: !DIFile(filename: "a", directory: "b")) diff --git a/test/Assembler/invalid-dicompileunit-missing-language.ll b/test/Assembler/invalid-dicompileunit-missing-language.ll index 15631b7f640b2..8e4cb0261dbbf 100644 --- a/test/Assembler/invalid-dicompileunit-missing-language.ll +++ b/test/Assembler/invalid-dicompileunit-missing-language.ll @@ -1,4 +1,4 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s -; CHECK: <stdin>:[[@LINE+1]]:65: error: missing required field 'language' -!0 = !DICompileUnit(file: !DIFile(filename: "a", directory: "b")) +; CHECK: <stdin>:[[@LINE+1]]:74: error: missing required field 'language' +!0 = distinct !DICompileUnit(file: !DIFile(filename: "a", directory: "b")) diff --git a/test/Assembler/invalid-dicompileunit-null-file.ll b/test/Assembler/invalid-dicompileunit-null-file.ll index cc1892e914650..450584f3d7152 100644 --- a/test/Assembler/invalid-dicompileunit-null-file.ll +++ b/test/Assembler/invalid-dicompileunit-null-file.ll @@ -1,4 +1,4 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s -; CHECK: <stdin>:[[@LINE+1]]:27: error: 'file' cannot be null -!0 = !DICompileUnit(file: null) +; CHECK: <stdin>:[[@LINE+1]]:36: error: 'file' cannot be null +!0 = distinct !DICompileUnit(file: null) diff --git a/test/Assembler/invalid-dicompileunit-uniqued.ll b/test/Assembler/invalid-dicompileunit-uniqued.ll new file mode 100644 index 0000000000000..18ae5c5ff01f1 --- /dev/null +++ b/test/Assembler/invalid-dicompileunit-uniqued.ll @@ -0,0 +1,4 @@ +; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s + +; CHECK: <stdin>:[[@LINE+1]]:6: error: missing 'distinct', required for !DICompileUnit +!0 = !DICompileUnit(language: DW_LANG_C99, file: !DIFile(filename: "file", directory: "/dir")) diff --git a/test/Assembler/invalid-dilocalvariable-arg-large.ll b/test/Assembler/invalid-dilocalvariable-arg-large.ll index d62da601e13cb..e6e4a76b1c1e8 100644 --- a/test/Assembler/invalid-dilocalvariable-arg-large.ll +++ b/test/Assembler/invalid-dilocalvariable-arg-large.ll @@ -1,6 +1,6 @@ ; RUN: not llvm-as < %s 2>&1 | FileCheck %s -!0 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: 65535) +!0 = !DILocalVariable(scope: !{}, arg: 65535) -; CHECK: <stdin>:[[@LINE+1]]:66: error: value for 'arg' too large, limit is 65535 -!1 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: 65536) +; CHECK: <stdin>:[[@LINE+1]]:40: error: value for 'arg' too large, limit is 65535 +!1 = !DILocalVariable(scope: !{}, arg: 65536) diff --git a/test/Assembler/invalid-dilocalvariable-arg-negative.ll b/test/Assembler/invalid-dilocalvariable-arg-negative.ll index 08e370a36660c..9cf8e973db21f 100644 --- a/test/Assembler/invalid-dilocalvariable-arg-negative.ll +++ b/test/Assembler/invalid-dilocalvariable-arg-negative.ll @@ -1,6 +1,7 @@ ; RUN: not llvm-as < %s 2>&1 | FileCheck %s -!0 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: 0) +!0 = !DILocalVariable(scope: !{}, arg: 1) +!1 = !DILocalVariable(scope: !{}) -; CHECK: <stdin>:[[@LINE+1]]:66: error: expected unsigned integer -!1 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: -1) +; CHECK: <stdin>:[[@LINE+1]]:40: error: expected unsigned integer +!2 = !DILocalVariable(scope: !{}, arg: -1) diff --git a/test/Assembler/invalid-dilocalvariable-missing-scope.ll b/test/Assembler/invalid-dilocalvariable-missing-scope.ll index 45dcad7136099..86bf52ddf2d3a 100644 --- a/test/Assembler/invalid-dilocalvariable-missing-scope.ll +++ b/test/Assembler/invalid-dilocalvariable-missing-scope.ll @@ -1,4 +1,4 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s -; CHECK: <stdin>:[[@LINE+1]]:48: error: missing required field 'scope' -!0 = !DILocalVariable(tag: DW_TAG_auto_variable) +; CHECK: <stdin>:[[@LINE+1]]:23: error: missing required field 'scope' +!0 = !DILocalVariable() diff --git a/test/Assembler/invalid-dilocalvariable-missing-tag.ll b/test/Assembler/invalid-dilocalvariable-missing-tag.ll deleted file mode 100644 index 18062edf75bd3..0000000000000 --- a/test/Assembler/invalid-dilocalvariable-missing-tag.ll +++ /dev/null @@ -1,4 +0,0 @@ -; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s - -; CHECK: <stdin>:[[@LINE+1]]:45: error: missing required field 'tag' -!0 = !DILocalVariable(scope: !DISubprogram()) diff --git a/test/Assembler/invalid-disubprogram-uniqued-definition.ll b/test/Assembler/invalid-disubprogram-uniqued-definition.ll new file mode 100644 index 0000000000000..c146883d6649f --- /dev/null +++ b/test/Assembler/invalid-disubprogram-uniqued-definition.ll @@ -0,0 +1,4 @@ +; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s + +; CHECK: <stdin>:[[@LINE+1]]:6: error: missing 'distinct', required for !DISubprogram when 'isDefinition' +!0 = !DISubprogram(isDefinition: true) diff --git a/test/Assembler/invalid-fp80hex.ll b/test/Assembler/invalid-fp80hex.ll new file mode 100644 index 0000000000000..70c518dd648ea --- /dev/null +++ b/test/Assembler/invalid-fp80hex.ll @@ -0,0 +1,6 @@ +; RUN: not llvm-as < %s 2>&1 | FileCheck %s + +; Tests bug: 24640 +; CHECK: expected '=' in global variable + +@- 0xKate potb8ed diff --git a/test/Assembler/invalid-fwdref2.ll b/test/Assembler/invalid-fwdref2.ll index d823481f8e1ba..0828cd9b08ac9 100644 --- a/test/Assembler/invalid-fwdref2.ll +++ b/test/Assembler/invalid-fwdref2.ll @@ -1,4 +1,4 @@ ; RUN: not llvm-as %s -disable-output 2>&1 | grep "forward reference and definition of global have different types" -@a2 = alias void ()* @g2 +@a2 = alias void (), void ()* @g2 @g2 = internal global i8 42 diff --git a/test/Assembler/invalid-inline-constraint.ll b/test/Assembler/invalid-inline-constraint.ll new file mode 100644 index 0000000000000..000fb86a8f79a --- /dev/null +++ b/test/Assembler/invalid-inline-constraint.ll @@ -0,0 +1,7 @@ +; RUN: not llvm-as < %s 2>&1 | FileCheck %s + +; Tests bug: https://llvm.org/bugs/show_bug.cgi?id=24646 +; CHECK: error: invalid type for inline asm constraint string + +define void @foo() nounwind { +call void asm sideeffect "mov x0, #42","=~{x0},~{x19},mov |0,{x19},mov x0, #4~x{21}"()ounwi #4~x{21}"()ounwindret diff --git a/test/Assembler/invalid-untyped-metadata.ll b/test/Assembler/invalid-untyped-metadata.ll new file mode 100644 index 0000000000000..5a97ae6596483 --- /dev/null +++ b/test/Assembler/invalid-untyped-metadata.ll @@ -0,0 +1,6 @@ +; RUN: not llvm-as < %s 2>&1 | FileCheck %s + +; Tests bug: https://llvm.org/bugs/show_bug.cgi?id=24645 +; CHECK: error: invalid type for inline asm constraint string + + !3=! {%..d04 *asm" !6!={!H)4" ,"" diff --git a/test/Assembler/invalid-uselistorder-indexes-duplicated.ll b/test/Assembler/invalid-uselistorder-indexes-duplicated.ll index e4affc53c1f6c..4ab4fbdfcce9f 100644 --- a/test/Assembler/invalid-uselistorder-indexes-duplicated.ll +++ b/test/Assembler/invalid-uselistorder-indexes-duplicated.ll @@ -1,7 +1,7 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s ; CHECK: error: expected distinct uselistorder indexes in range [0, size) @global = global i32 0 -@alias1 = alias i32* @global -@alias2 = alias i32* @global -@alias3 = alias i32* @global +@alias1 = alias i32, i32* @global +@alias2 = alias i32, i32* @global +@alias3 = alias i32, i32* @global uselistorder i32* @global, { 0, 0, 2 } diff --git a/test/Assembler/invalid-uselistorder-indexes-one.ll b/test/Assembler/invalid-uselistorder-indexes-one.ll index f5eac80a3ca21..f61809f7fea24 100644 --- a/test/Assembler/invalid-uselistorder-indexes-one.ll +++ b/test/Assembler/invalid-uselistorder-indexes-one.ll @@ -1,5 +1,5 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s ; CHECK: error: value only has one use @global = global i32 0 -@alias = alias i32* @global +@alias = alias i32, i32* @global uselistorder i32* @global, { 1, 0 } diff --git a/test/Assembler/invalid-uselistorder-indexes-ordered.ll b/test/Assembler/invalid-uselistorder-indexes-ordered.ll index 7bdc40037afe1..e7a17b0e3abef 100644 --- a/test/Assembler/invalid-uselistorder-indexes-ordered.ll +++ b/test/Assembler/invalid-uselistorder-indexes-ordered.ll @@ -1,7 +1,7 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s ; CHECK: error: expected uselistorder indexes to change the order @global = global i32 0 -@alias1 = alias i32* @global -@alias2 = alias i32* @global -@alias3 = alias i32* @global +@alias1 = alias i32, i32* @global +@alias2 = alias i32, i32* @global +@alias3 = alias i32, i32* @global uselistorder i32* @global, { 0, 1, 2 } diff --git a/test/Assembler/invalid-uselistorder-indexes-range.ll b/test/Assembler/invalid-uselistorder-indexes-range.ll index fc97acac5e631..7c3ab116bd81a 100644 --- a/test/Assembler/invalid-uselistorder-indexes-range.ll +++ b/test/Assembler/invalid-uselistorder-indexes-range.ll @@ -1,7 +1,7 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s ; CHECK: error: expected distinct uselistorder indexes in range [0, size) @global = global i32 0 -@alias1 = alias i32* @global -@alias2 = alias i32* @global -@alias3 = alias i32* @global +@alias1 = alias i32, i32* @global +@alias2 = alias i32, i32* @global +@alias3 = alias i32, i32* @global uselistorder i32* @global, { 0, 3, 1 } diff --git a/test/Assembler/invalid-uselistorder-indexes-toofew.ll b/test/Assembler/invalid-uselistorder-indexes-toofew.ll index 88a76fc568a91..fd9ff8029f9a7 100644 --- a/test/Assembler/invalid-uselistorder-indexes-toofew.ll +++ b/test/Assembler/invalid-uselistorder-indexes-toofew.ll @@ -1,7 +1,7 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s ; CHECK: error: wrong number of indexes, expected 3 @global = global i32 0 -@alias1 = alias i32* @global -@alias2 = alias i32* @global -@alias3 = alias i32* @global +@alias1 = alias i32, i32* @global +@alias2 = alias i32, i32* @global +@alias3 = alias i32, i32* @global uselistorder i32* @global, { 1, 0 } diff --git a/test/Assembler/invalid-uselistorder-indexes-toomany.ll b/test/Assembler/invalid-uselistorder-indexes-toomany.ll index a2cf3da0bd38d..ba8481d61aa65 100644 --- a/test/Assembler/invalid-uselistorder-indexes-toomany.ll +++ b/test/Assembler/invalid-uselistorder-indexes-toomany.ll @@ -1,6 +1,6 @@ ; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s ; CHECK: error: wrong number of indexes, expected 2 @global = global i32 0 -@alias1 = alias i32* @global -@alias2 = alias i32* @global +@alias1 = alias i32, i32* @global +@alias2 = alias i32, i32* @global uselistorder i32* @global, { 1, 0, 2 } diff --git a/test/Assembler/metadata.ll b/test/Assembler/metadata.ll index 052ac1b5097e0..8c7781e887dd8 100644 --- a/test/Assembler/metadata.ll +++ b/test/Assembler/metadata.ll @@ -30,7 +30,7 @@ define void @test_attachment_name() { } !0 = !DILocation(line: 662302, column: 26, scope: !1) -!1 = !DISubprogram(name: "foo") +!1 = distinct !DISubprogram(name: "foo") !2 = distinct !{} !3 = distinct !{} !4 = distinct !{} diff --git a/test/Assembler/private-hidden-alias.ll b/test/Assembler/private-hidden-alias.ll index 2e770e58784e8..eac27f488e6b6 100644 --- a/test/Assembler/private-hidden-alias.ll +++ b/test/Assembler/private-hidden-alias.ll @@ -2,5 +2,5 @@ @global = global i32 0 -@alias = private hidden alias i32* @global +@alias = private hidden alias i32, i32* @global ; CHECK: symbol with local linkage must have default visibility diff --git a/test/Assembler/private-protected-alias.ll b/test/Assembler/private-protected-alias.ll index f1824a2f3c7c4..37bdabaf8a5ef 100644 --- a/test/Assembler/private-protected-alias.ll +++ b/test/Assembler/private-protected-alias.ll @@ -2,5 +2,5 @@ @global = global i32 0 -@alias = private protected alias i32* @global +@alias = private protected alias i32, i32* @global ; CHECK: symbol with local linkage must have default visibility diff --git a/test/Assembler/token.ll b/test/Assembler/token.ll new file mode 100644 index 0000000000000..c4d68b4b3ffb0 --- /dev/null +++ b/test/Assembler/token.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s +; RUN: verify-uselistorder %s +; Basic smoke test for token type. + +; CHECK: declare void @llvm.token.foobar(token) +declare void @llvm.token.foobar(token) + +define void @f() { + call void @llvm.token.foobar(token none) + ret void +} diff --git a/test/Assembler/unnamed-alias.ll b/test/Assembler/unnamed-alias.ll index 8ae1c45d312d2..121e54b7d0793 100644 --- a/test/Assembler/unnamed-alias.ll +++ b/test/Assembler/unnamed-alias.ll @@ -5,7 +5,7 @@ @1 = private constant i32 1 ; CHECK: @1 = private constant i32 1 -@2 = private alias i32* @0 -; CHECK: @2 = private alias i32* @0 -@3 = private alias i32* @1 -; CHECK: @3 = private alias i32* @1 +@2 = private alias i32, i32* @3 +; CHECK: @2 = private alias i32, i32* @3 +@3 = private alias i32, i32* @1 +; CHECK: @3 = private alias i32, i32* @1 diff --git a/test/Assembler/uselistorder.ll b/test/Assembler/uselistorder.ll index 2475fc48caf40..016bd877311b6 100644 --- a/test/Assembler/uselistorder.ll +++ b/test/Assembler/uselistorder.ll @@ -4,7 +4,7 @@ ; RUN: verify-uselistorder < %s @a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1] -@b = alias i1* getelementptr ([4 x i1], [4 x i1]* @a, i64 0, i64 2) +@b = alias i1, getelementptr ([4 x i1], [4 x i1]* @a, i64 0, i64 2) ; Check use-list order of constants used by globals. @glob1 = global i5 7 |
