diff options
author | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2017-03-08 23:55:44 +0000 |
---|---|---|
committer | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2017-03-08 23:55:44 +0000 |
commit | d5561e0a0bbd484da17d3b68ae5fedc0a057246b (patch) | |
tree | 40642d65e0adf50eae29e4cb204584c0de1a633c /llvm/test | |
parent | d4cb9c6da0b940e0b13c1c5a286cc67d31267d70 (diff) | |
download | bcm5719-llvm-d5561e0a0bbd484da17d3b68ae5fedc0a057246b.tar.gz bcm5719-llvm-d5561e0a0bbd484da17d3b68ae5fedc0a057246b.zip |
[DebugInfo] Emit address space with DW_AT_address_class attribute for pointer and reference types
Differential Revision: https://reviews.llvm.org/D29670
llvm-svn: 297320
Diffstat (limited to 'llvm/test')
15 files changed, 242 insertions, 3 deletions
diff --git a/llvm/test/Assembler/debug-info.ll b/llvm/test/Assembler/debug-info.ll index da19678dbf1..6be3a308e62 100644 --- a/llvm/test/Assembler/debug-info.ll +++ b/llvm/test/Assembler/debug-info.ll @@ -37,8 +37,8 @@ !13 = distinct !{} !14 = !DIFile(filename: "", directory: "") -; CHECK-NEXT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 32, align: 32) -!15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 32, align: 32) +; CHECK-NEXT: !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 32, align: 32, dwarfAddressSpace: 1) +!15 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 32, align: 32, dwarfAddressSpace: 1) ; CHECK-NEXT: !14 = !DICompositeType(tag: DW_TAG_structure_type, name: "MyType", file: !10, line: 2, size: 32, align: 32, identifier: "MangledMyType") ; CHECK-NEXT: !15 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Base", scope: !14, file: !10, line: 3, size: 128, align: 32, offset: 64, flags: DIFlagPublic, elements: !16, runtimeLang: DW_LANG_C_plus_plus_11, vtableHolder: !15, templateParams: !18, identifier: "MangledBase") @@ -84,4 +84,4 @@ ; CHECK-NEXT: !33 = !DIFile(filename: "file", directory: "dir") !35 = !DIFile(filename: "file", directory: "dir", checksumkind: CSK_MD5, checksum: "000102030405060708090a0b0c0d0e0f") !36 = !DIFile(filename: "file", directory: "dir", checksumkind: CSK_None) -!37 = !DIFile(filename: "file", directory: "dir", checksumkind: CSK_None, checksum: "")
\ No newline at end of file +!37 = !DIFile(filename: "file", directory: "dir", checksumkind: CSK_None, checksum: "") diff --git a/llvm/test/Bitcode/upgrade-pointer-address-space.ll b/llvm/test/Bitcode/upgrade-pointer-address-space.ll new file mode 100644 index 00000000000..8b85055651d --- /dev/null +++ b/llvm/test/Bitcode/upgrade-pointer-address-space.ll @@ -0,0 +1,5 @@ +; RUN: llvm-dis -o - %s.bc | FileCheck %s + +; CHECK-DAG: !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !{{[0-9]+}}, size: {{[0-9]+}}) +; CHECK-DAG: !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !{{[0-9]+}}, size: {{[0-9]+}}) +; CHECK-DAG: !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !{{[0-9]+}}, size: {{[0-9]+}}) diff --git a/llvm/test/Bitcode/upgrade-pointer-address-space.ll.bc b/llvm/test/Bitcode/upgrade-pointer-address-space.ll.bc Binary files differnew file mode 100644 index 00000000000..0ad735e2430 --- /dev/null +++ b/llvm/test/Bitcode/upgrade-pointer-address-space.ll.bc diff --git a/llvm/test/DebugInfo/AMDGPU/pointer-address-space-dwarf-v1.ll b/llvm/test/DebugInfo/AMDGPU/pointer-address-space-dwarf-v1.ll new file mode 100644 index 00000000000..cbd5e7688a5 --- /dev/null +++ b/llvm/test/DebugInfo/AMDGPU/pointer-address-space-dwarf-v1.ll @@ -0,0 +1,70 @@ +; RUN: llc -O0 -mtriple=amdgcn--amdhsa -mcpu=fiji -verify-machineinstrs -filetype=obj < %s | llvm-dwarfdump -debug-dump=info - | FileCheck %s + +; LLVM IR generated with the following command and OpenCL source: +; +; $clang -cl-std=CL2.0 -g -O0 -target amdgcn-amd-amdhsa -S -emit-llvm <path-to-file> +; +; kernel void kernel1() { +; global int *FuncVar0 = 0; +; constant int *FuncVar1 = 0; +; local int *FuncVar2 = 0; +; private int *FuncVar3 = 0; +; int *FuncVar4 = 0; +; } + +; DW_AT_address_class is available since Dwarf Version 2. +; CHECK-NOT: DW_AT_address_class + +declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 + +define amdgpu_kernel void @kernel1() #0 !dbg !7 { +entry: + %FuncVar0 = alloca i32 addrspace(1)*, align 4 + %FuncVar1 = alloca i32 addrspace(2)*, align 4 + %FuncVar2 = alloca i32 addrspace(3)*, align 4 + %FuncVar3 = alloca i32*, align 4 + %FuncVar4 = alloca i32 addrspace(4)*, align 4 + call void @llvm.dbg.declare(metadata i32 addrspace(1)** %FuncVar0, metadata !10, metadata !13), !dbg !14 + store i32 addrspace(1)* null, i32 addrspace(1)** %FuncVar0, align 4, !dbg !14 + call void @llvm.dbg.declare(metadata i32 addrspace(2)** %FuncVar1, metadata !15, metadata !13), !dbg !16 + store i32 addrspace(2)* null, i32 addrspace(2)** %FuncVar1, align 4, !dbg !16 + call void @llvm.dbg.declare(metadata i32 addrspace(3)** %FuncVar2, metadata !17, metadata !13), !dbg !19 + store i32 addrspace(3)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(3)*), i32 addrspace(3)** %FuncVar2, align 4, !dbg !19 + call void @llvm.dbg.declare(metadata i32** %FuncVar3, metadata !20, metadata !13), !dbg !22 + store i32* addrspacecast (i32 addrspace(4)* null to i32*), i32** %FuncVar3, align 4, !dbg !22 + call void @llvm.dbg.declare(metadata i32 addrspace(4)** %FuncVar4, metadata !23, metadata !13), !dbg !24 + store i32 addrspace(4)* null, i32 addrspace(4)** %FuncVar4, align 4, !dbg !24 + ret void, !dbg !25 +} + +!llvm.dbg.cu = !{!0} +!opencl.ocl.version = !{!3} +!llvm.module.flags = !{!4, !5} +!llvm.ident = !{!6} + +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2) +!1 = !DIFile(filename: "pointer-address-space-dwarf-v1.cl", directory: "/some/random/directory") +!2 = !{} +!3 = !{i32 2, i32 0} +!4 = !{i32 2, !"Dwarf Version", i32 1} +!5 = !{i32 2, !"Debug Info Version", i32 3} +!6 = !{!""} +!7 = distinct !DISubprogram(name: "kernel1", scope: !1, file: !1, line: 1, type: !8, isLocal: false, isDefinition: true, scopeLine: 1, isOptimized: false, unit: !0, variables: !2) +!8 = !DISubroutineType(types: !9) +!9 = !{null} +!10 = !DILocalVariable(name: "FuncVar0", scope: !7, file: !1, line: 2, type: !11) +!11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64) +!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!13 = !DIExpression() +!14 = !DILocation(line: 2, column: 15, scope: !7) +!15 = !DILocalVariable(name: "FuncVar1", scope: !7, file: !1, line: 3, type: !11) +!16 = !DILocation(line: 3, column: 17, scope: !7) +!17 = !DILocalVariable(name: "FuncVar2", scope: !7, file: !1, line: 4, type: !18) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 32, dwarfAddressSpace: 2) +!19 = !DILocation(line: 4, column: 14, scope: !7) +!20 = !DILocalVariable(name: "FuncVar3", scope: !7, file: !1, line: 5, type: !21) +!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 32, dwarfAddressSpace: 1) +!22 = !DILocation(line: 5, column: 16, scope: !7) +!23 = !DILocalVariable(name: "FuncVar4", scope: !7, file: !1, line: 6, type: !11) +!24 = !DILocation(line: 6, column: 8, scope: !7) +!25 = !DILocation(line: 7, column: 1, scope: !7) diff --git a/llvm/test/DebugInfo/AMDGPU/pointer-address-space.ll b/llvm/test/DebugInfo/AMDGPU/pointer-address-space.ll new file mode 100644 index 00000000000..a99d690935a --- /dev/null +++ b/llvm/test/DebugInfo/AMDGPU/pointer-address-space.ll @@ -0,0 +1,104 @@ +; RUN: llc -O0 -mtriple=amdgcn--amdhsa -mcpu=fiji -verify-machineinstrs -filetype=obj < %s | llvm-dwarfdump -debug-dump=info - | FileCheck %s + +; LLVM IR generated with the following command and OpenCL source: +; +; $clang -cl-std=CL2.0 -g -O0 -target amdgcn-amd-amdhsa -S -emit-llvm <path-to-file> +; +; kernel void kernel1() { +; global int *FuncVar0 = 0; +; constant int *FuncVar1 = 0; +; local int *FuncVar2 = 0; +; private int *FuncVar3 = 0; +; int *FuncVar4 = 0; +; } + +; CHECK: DW_AT_name {{.*}}"FuncVar0" +; CHECK-NEXT: DW_AT_decl_file +; CHECK-NEXT: DW_AT_decl_line +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[NONE:[a-f0-9]+]]}) + +; CHECK: DW_AT_name {{.*}}"FuncVar1" +; CHECK-NEXT: DW_AT_decl_file +; CHECK-NEXT: DW_AT_decl_line +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[NONE]]}) + +; CHECK: DW_AT_name {{.*}}"FuncVar2" +; CHECK-NEXT: DW_AT_decl_file +; CHECK-NEXT: DW_AT_decl_line +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[LOCAL:[a-f0-9]+]]}) + +; CHECK: DW_AT_name {{.*}}"FuncVar3" +; CHECK-NEXT: DW_AT_decl_file +; CHECK-NEXT: DW_AT_decl_line +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[PRIVATE:[a-f0-9]+]]}) + +; CHECK: DW_AT_name {{.*}}"FuncVar4" +; CHECK-NEXT: DW_AT_decl_file +; CHECK-NEXT: DW_AT_decl_line +; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[NONE]]}) + +; CHECK: 0x[[NONE]]: DW_TAG_pointer_type +; CHECK-NEXT: DW_AT_type +; CHECK-NOT: DW_AT_address_class + +; CHECK: 0x[[LOCAL]]: DW_TAG_pointer_type +; CHECK-NEXT: DW_AT_type +; CHECK-NEXT: DW_AT_address_class [DW_FORM_data4] (0x00000002) + +; CHECK: 0x[[PRIVATE]]: DW_TAG_pointer_type +; CHECK-NEXT: DW_AT_type +; CHECK-NEXT: DW_AT_address_class [DW_FORM_data4] (0x00000001) + +declare void @llvm.dbg.declare(metadata, metadata, metadata) + +define amdgpu_kernel void @kernel1() !dbg !7 { +entry: + %FuncVar0 = alloca i32 addrspace(1)*, align 4 + %FuncVar1 = alloca i32 addrspace(2)*, align 4 + %FuncVar2 = alloca i32 addrspace(3)*, align 4 + %FuncVar3 = alloca i32*, align 4 + %FuncVar4 = alloca i32 addrspace(4)*, align 4 + call void @llvm.dbg.declare(metadata i32 addrspace(1)** %FuncVar0, metadata !10, metadata !13), !dbg !14 + store i32 addrspace(1)* null, i32 addrspace(1)** %FuncVar0, align 4, !dbg !14 + call void @llvm.dbg.declare(metadata i32 addrspace(2)** %FuncVar1, metadata !15, metadata !13), !dbg !16 + store i32 addrspace(2)* null, i32 addrspace(2)** %FuncVar1, align 4, !dbg !16 + call void @llvm.dbg.declare(metadata i32 addrspace(3)** %FuncVar2, metadata !17, metadata !13), !dbg !19 + store i32 addrspace(3)* addrspacecast (i32 addrspace(4)* null to i32 addrspace(3)*), i32 addrspace(3)** %FuncVar2, align 4, !dbg !19 + call void @llvm.dbg.declare(metadata i32** %FuncVar3, metadata !20, metadata !13), !dbg !22 + store i32* addrspacecast (i32 addrspace(4)* null to i32*), i32** %FuncVar3, align 4, !dbg !22 + call void @llvm.dbg.declare(metadata i32 addrspace(4)** %FuncVar4, metadata !23, metadata !13), !dbg !24 + store i32 addrspace(4)* null, i32 addrspace(4)** %FuncVar4, align 4, !dbg !24 + ret void, !dbg !25 +} + +!llvm.dbg.cu = !{!0} +!opencl.ocl.version = !{!3} +!llvm.module.flags = !{!4, !5} +!llvm.ident = !{!6} + +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2) +!1 = !DIFile(filename: "pointer-address-space.ll", directory: "/some/random/directory") +!2 = !{} +!3 = !{i32 2, i32 0} +!4 = !{i32 2, !"Dwarf Version", i32 2} +!5 = !{i32 2, !"Debug Info Version", i32 3} +!6 = !{!""} +!7 = distinct !DISubprogram(name: "kernel1", scope: !1, file: !1, line: 1, type: !8, isLocal: false, isDefinition: true, scopeLine: 1, isOptimized: false, unit: !0, variables: !2) +!8 = !DISubroutineType(types: !9) +!9 = !{null} +!10 = !DILocalVariable(name: "FuncVar0", scope: !7, file: !1, line: 2, type: !11) +!11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64) +!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!13 = !DIExpression() +!14 = !DILocation(line: 2, column: 15, scope: !7) +!15 = !DILocalVariable(name: "FuncVar1", scope: !7, file: !1, line: 3, type: !11) +!16 = !DILocation(line: 3, column: 17, scope: !7) +!17 = !DILocalVariable(name: "FuncVar2", scope: !7, file: !1, line: 4, type: !18) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 32, dwarfAddressSpace: 2) +!19 = !DILocation(line: 4, column: 14, scope: !7) +!20 = !DILocalVariable(name: "FuncVar3", scope: !7, file: !1, line: 5, type: !21) +!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 32, dwarfAddressSpace: 1) +!22 = !DILocation(line: 5, column: 16, scope: !7) +!23 = !DILocalVariable(name: "FuncVar4", scope: !7, file: !1, line: 6, type: !11) +!24 = !DILocation(line: 6, column: 8, scope: !7) +!25 = !DILocation(line: 7, column: 1, scope: !7) diff --git a/llvm/test/Verifier/diderivedtype-address-space-atomic-type.ll b/llvm/test/Verifier/diderivedtype-address-space-atomic-type.ll new file mode 100644 index 00000000000..f7926ed9494 --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-atomic-type.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_atomic_type, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-const-type.ll b/llvm/test/Verifier/diderivedtype-address-space-const-type.ll new file mode 100644 index 00000000000..deba6394381 --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-const-type.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-friend.ll b/llvm/test/Verifier/diderivedtype-address-space-friend.ll new file mode 100644 index 00000000000..d3d3df47ed2 --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-friend.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_friend, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-inheritance.ll b/llvm/test/Verifier/diderivedtype-address-space-inheritance.ll new file mode 100644 index 00000000000..2020f030d7e --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-inheritance.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_inheritance, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-member.ll b/llvm/test/Verifier/diderivedtype-address-space-member.ll new file mode 100644 index 00000000000..366bc4896bb --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-member.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_member, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-ptr-to-member-type.ll b/llvm/test/Verifier/diderivedtype-address-space-ptr-to-member-type.ll new file mode 100644 index 00000000000..0ae6539d366 --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-ptr-to-member-type.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-restrict-type.ll b/llvm/test/Verifier/diderivedtype-address-space-restrict-type.ll new file mode 100644 index 00000000000..b140a9e28b4 --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-restrict-type.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-rvalue-reference-type.ll b/llvm/test/Verifier/diderivedtype-address-space-rvalue-reference-type.ll new file mode 100644 index 00000000000..5bcdc3b8d52 --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-rvalue-reference-type.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_rvalue_reference_type, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-typedef.ll b/llvm/test/Verifier/diderivedtype-address-space-typedef.ll new file mode 100644 index 00000000000..03a5c6af88d --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-typedef.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_typedef, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) diff --git a/llvm/test/Verifier/diderivedtype-address-space-volatile-type.ll b/llvm/test/Verifier/diderivedtype-address-space-volatile-type.ll new file mode 100644 index 00000000000..e8e70bc7959 --- /dev/null +++ b/llvm/test/Verifier/diderivedtype-address-space-volatile-type.ll @@ -0,0 +1,6 @@ +; RUN: not opt -S < %s 2>&1 | FileCheck %s + +!named = !{!0, !1} +!0 = !DIBasicType(tag: DW_TAG_base_type, name: "name", size: 1, align: 2, encoding: DW_ATE_unsigned_char) +; CHECK: DWARF address space only applies to pointer or reference types +!1 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !0, size: 32, align: 32, dwarfAddressSpace: 1) |