
This remove some erroneous debug info from tests that should address the test failures that showed up when the this was previously committed. This reverts commit 6716ce8b641f0e42e2343e1694ee578b027be0c4.
117 lines
5.9 KiB
LLVM
117 lines
5.9 KiB
LLVM
; Test set representation in DWARF debug info:
|
|
|
|
; RUN: llc -debugger-tune=gdb -dwarf-version=4 -filetype=obj -o %t.o < %s
|
|
; RUN: llvm-dwarfdump -debug-info %t.o | FileCheck %s --check-prefix=CHECK
|
|
|
|
; ModuleID = 'Main.mb'
|
|
source_filename = "../src/Main.m3"
|
|
target datalayout = "e-m:e-p:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-pc-linux-gnu"
|
|
|
|
%M_Const_struct = type { [7 x i8], [1 x i8], [4 x i8], [4 x i8], ptr, ptr, ptr, ptr, [8 x i8], [14 x i8], [2 x i8] }
|
|
%M_Main_struct = type { ptr, [32 x i8], ptr, [24 x i8], ptr, [8 x i8], ptr, i64, [8 x i8], ptr, ptr, [8 x i8], ptr, [8 x i8] }
|
|
|
|
@M_Const = internal constant %M_Const_struct { [7 x i8] c"Main_M3", [1 x i8] zeroinitializer, [4 x i8] c"Test", [4 x i8] zeroinitializer, ptr @Main_M3, ptr @M_Const, ptr @Main__Test, ptr getelementptr inbounds (i8, ptr @M_Const, i64 8), [8 x i8] zeroinitializer, [14 x i8] c"../src/Main.m3", [2 x i8] zeroinitializer }, align 8
|
|
@M_Main = internal global %M_Main_struct { ptr getelementptr inbounds (i8, ptr @M_Const, i64 56), [32 x i8] zeroinitializer, ptr getelementptr inbounds (i8, ptr @M_Const, i64 16), [24 x i8] zeroinitializer, ptr getelementptr inbounds (i8, ptr @M_Main, i64 104), [8 x i8] zeroinitializer, ptr @Main_M3, i64 3, [8 x i8] zeroinitializer, ptr @Main_I3, ptr getelementptr inbounds (i8, ptr @M_Main, i64 128), [8 x i8] zeroinitializer, ptr @RTHooks_I3, [8 x i8] zeroinitializer }, align 8
|
|
@m3_jmpbuf_size = external global i64, align 8
|
|
|
|
declare ptr @Main_I3()
|
|
|
|
declare ptr @RTHooks_I3()
|
|
|
|
; Function Attrs: uwtable
|
|
define void @Main__Test() #0 !dbg !5 {
|
|
entry:
|
|
%as = alloca i64, align 8
|
|
%bs = alloca i64, align 8
|
|
br label %second, !dbg !21
|
|
|
|
second: ; preds = %entry
|
|
call void @llvm.dbg.declare(metadata ptr %as, metadata !22, metadata !DIExpression()), !dbg !25
|
|
call void @llvm.dbg.declare(metadata ptr %bs, metadata !26, metadata !DIExpression()), !dbg !25
|
|
store i64 36028797018972298, ptr %as, align 8, !dbg !28
|
|
store i64 197, ptr %bs, align 8, !dbg !29
|
|
ret void, !dbg !21
|
|
}
|
|
|
|
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
|
|
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
|
|
|
|
declare ptr @alloca()
|
|
|
|
; Function Attrs: uwtable
|
|
define ptr @Main_M3(i64 %mode) #0 !dbg !30 {
|
|
entry:
|
|
%mode1 = alloca i64, align 8
|
|
store i64 %mode, ptr %mode1, align 8
|
|
br label %second, !dbg !36
|
|
|
|
second: ; preds = %entry
|
|
call void @llvm.dbg.declare(metadata ptr %mode1, metadata !37, metadata !DIExpression()), !dbg !38
|
|
%v.3 = load i64, ptr %mode1, align 8, !dbg !38
|
|
%icmp = icmp eq i64 %v.3, 0, !dbg !38
|
|
br i1 %icmp, label %if_1, label %else_1, !dbg !38
|
|
|
|
else_1: ; preds = %second
|
|
call void @Main__Test(), !dbg !36
|
|
br label %if_1, !dbg !36
|
|
|
|
if_1: ; preds = %else_1, %second
|
|
ret ptr @M_Main, !dbg !36
|
|
}
|
|
|
|
attributes #0 = { uwtable "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
|
|
|
|
!llvm.ident = !{!0}
|
|
!llvm.dbg.cu = !{!1}
|
|
!llvm.module.flags = !{!18, !19, !20}
|
|
|
|
!0 = !{!"versions- cm3: d5.10.0 llvm: 9.0"}
|
|
!1 = distinct !DICompileUnit(language: DW_LANG_Modula3, file: !2, producer: "cm3", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3)
|
|
!2 = !DIFile(filename: "Main.m3", directory: "/home/cm3/settest/src")
|
|
!3 = !{!4}
|
|
!4 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Enum", scope: !5, file: !2, line: 11, size: 8, align: 8, elements: !9)
|
|
!5 = distinct !DISubprogram(name: "Test", linkageName: "Main__Test", scope: !2, file: !2, line: 11, type: !6, scopeLine: 11, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8)
|
|
!6 = !DISubroutineType(types: !7)
|
|
!7 = !{null}
|
|
!8 = !{}
|
|
!9 = !{!10, !11, !12, !13, !14, !15, !16, !17}
|
|
!10 = !DIEnumerator(name: "alpha", value: 0)
|
|
!11 = !DIEnumerator(name: "beta", value: 1)
|
|
!12 = !DIEnumerator(name: "gamma", value: 2)
|
|
!13 = !DIEnumerator(name: "delta", value: 3)
|
|
!14 = !DIEnumerator(name: "epsilon", value: 4)
|
|
!15 = !DIEnumerator(name: "theta", value: 5)
|
|
!16 = !DIEnumerator(name: "psi", value: 6)
|
|
!17 = !DIEnumerator(name: "zeta", value: 7)
|
|
!18 = !{i64 2, !"Dwarf Version", i64 4}
|
|
!19 = !{i64 2, !"Debug Info Version", i64 3}
|
|
!20 = !{i64 2, !"wchar_size", i64 2}
|
|
!21 = !DILocation(line: 20, scope: !5)
|
|
!22 = !DILocalVariable(name: "as", scope: !5, file: !2, line: 11, type: !23)
|
|
!23 = !DIDerivedType(tag: DW_TAG_set_type, name: "SS", scope: !2, file: !2, line: 11, baseType: !24, size: 64, align: 64)
|
|
!24 = !DIBasicType(name: "SR", size: 8, encoding: DW_ATE_signed)
|
|
; CHECK: DW_TAG_set_type
|
|
; CHECK: DW_AT_type{{.*}}"SR"
|
|
; CHECK: DW_AT_name ("SS")
|
|
; CHECK: DW_AT_byte_size (0x08)
|
|
!25 = !DILocation(line: 11, scope: !5)
|
|
!26 = !DILocalVariable(name: "bs", scope: !5, file: !2, line: 11, type: !27)
|
|
!27 = !DIDerivedType(tag: DW_TAG_set_type, name: "ST", scope: !2, file: !2, line: 11, baseType: !4, size: 64, align: 64)
|
|
; CHECK: DW_TAG_set_type
|
|
; CHECK: DW_AT_type{{.*}}"Enum"
|
|
; CHECK: DW_AT_name ("ST")
|
|
; CHECK: DW_AT_byte_size (0x08)
|
|
!28 = !DILocation(line: 17, scope: !5)
|
|
!29 = !DILocation(line: 18, scope: !5)
|
|
!30 = distinct !DISubprogram(name: "Main_M3", linkageName: "Main_M3", scope: !2, file: !2, line: 22, type: !31, scopeLine: 22, spFlags: DISPFlagDefinition, unit: !1, retainedNodes: !8)
|
|
!31 = !DISubroutineType(types: !32)
|
|
!32 = !{!33, !35}
|
|
!33 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "ADDR", baseType: !34, size: 64, align: 64)
|
|
!34 = !DICompositeType(tag: DW_TAG_class_type, name: "ADDR__HeapObject", scope: !5, file: !2, line: 22, size: 64, align: 64, identifier: "AJWxb1")
|
|
!35 = !DIBasicType(name: "INTEGER", size: 64, encoding: DW_ATE_signed)
|
|
!36 = !DILocation(line: 23, scope: !30)
|
|
!37 = !DILocalVariable(name: "mode", arg: 1, scope: !30, file: !2, line: 22, type: !35)
|
|
!38 = !DILocation(line: 22, scope: !30)
|