; ModuleID = 'p0.bc' source_filename = "disasm-test/tests/p0.c" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %struct.broker = type { [10 x %struct.message], i8, i8 } %struct.message = type { i16, i8*, i8 } @broker = external global %struct.broker, align 8 @signal = external global [200 x i8], align 16 @__const.main.msg = private unnamed_addr constant %struct.message { i16 0, i8* getelementptr inbounds ([200 x i8], [200 x i8]* @signal, i32 0, i32 0), i8 -56 }, align 8 ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @broker_init(%struct.broker* %0) #0 !dbg !21 { %2 = alloca %struct.broker*, align 8 store %struct.broker* %0, %struct.broker** %2, align 8 call void @llvm.dbg.declare(metadata %struct.broker** %2, metadata !44, metadata !DIExpression()), !dbg !45 %3 = load %struct.broker*, %struct.broker** %2, align 8, !dbg !46 %4 = getelementptr inbounds %struct.broker, %struct.broker* %3, i32 0, i32 2, !dbg !47 store i8 0, i8* %4, align 1, !dbg !48 ret void, !dbg !49 } ; Function Attrs: nounwind readnone speculatable willreturn declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @broker_run(%struct.broker* %0) #0 !dbg !50 { %2 = alloca %struct.broker*, align 8 %3 = alloca i8, align 1 store %struct.broker* %0, %struct.broker** %2, align 8 call void @llvm.dbg.declare(metadata %struct.broker** %2, metadata !51, metadata !DIExpression()), !dbg !52 call void @llvm.dbg.declare(metadata i8* %3, metadata !53, metadata !DIExpression()), !dbg !55 store i8 0, i8* %3, align 1, !dbg !55 br label %4, !dbg !56 4: ; preds = %18, %1 %5 = load i8, i8* %3, align 1, !dbg !57 %6 = zext i8 %5 to i32, !dbg !57 %7 = load %struct.broker*, %struct.broker** %2, align 8, !dbg !59 %8 = getelementptr inbounds %struct.broker, %struct.broker* %7, i32 0, i32 2, !dbg !60 %9 = load i8, i8* %8, align 1, !dbg !60 %10 = zext i8 %9 to i32, !dbg !59 %11 = icmp slt i32 %6, %10, !dbg !61 br i1 %11, label %12, label %21, !dbg !62 12: ; preds = %4 %13 = load %struct.broker*, %struct.broker** %2, align 8, !dbg !63 %14 = getelementptr inbounds %struct.broker, %struct.broker* %13, i32 0, i32 0, !dbg !65 %15 = load i8, i8* %3, align 1, !dbg !66 %16 = zext i8 %15 to i64, !dbg !63 %17 = getelementptr [10 x %struct.message], [10 x %struct.message]* %14, i64 0, i64 %16, !dbg !63 call void @sp_receive(%struct.message* %17), !dbg !67 br label %18, !dbg !68 18: ; preds = %12 %19 = load i8, i8* %3, align 1, !dbg !69 %20 = add i8 %19, 1, !dbg !69 store i8 %20, i8* %3, align 1, !dbg !69 br label %4, !dbg !70, !llvm.loop !71 21: ; preds = %4 ret void, !dbg !73 } ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @sp_receive(%struct.message* %0) #0 !dbg !74 { %2 = alloca %struct.message*, align 8 store %struct.message* %0, %struct.message** %2, align 8 call void @llvm.dbg.declare(metadata %struct.message** %2, metadata !78, metadata !DIExpression()), !dbg !79 %3 = load %struct.message*, %struct.message** %2, align 8, !dbg !80 %4 = getelementptr inbounds %struct.message, %struct.message* %3, i32 0, i32 0, !dbg !81 %5 = load i16, i16* %4, align 8, !dbg !81 %6 = zext i16 %5 to i32, !dbg !80 switch i32 %6, label %28 [ i32 0, label %7 i32 1, label %14 i32 2, label %21 ], !dbg !82 7: ; preds = %1 %8 = load %struct.message*, %struct.message** %2, align 8, !dbg !83 %9 = getelementptr inbounds %struct.message, %struct.message* %8, i32 0, i32 1, !dbg !85 %10 = load i8*, i8** %9, align 8, !dbg !85 %11 = load %struct.message*, %struct.message** %2, align 8, !dbg !86 %12 = getelementptr inbounds %struct.message, %struct.message* %11, i32 0, i32 2, !dbg !87 %13 = load i8, i8* %12, align 8, !dbg !87 call void @sp_clear(i8* %10, i8 zeroext %13), !dbg !88 br label %29, !dbg !89 14: ; preds = %1 %15 = load %struct.message*, %struct.message** %2, align 8, !dbg !90 %16 = getelementptr inbounds %struct.message, %struct.message* %15, i32 0, i32 1, !dbg !91 %17 = load i8*, i8** %16, align 8, !dbg !91 %18 = load %struct.message*, %struct.message** %2, align 8, !dbg !92 %19 = getelementptr inbounds %struct.message, %struct.message* %18, i32 0, i32 2, !dbg !93 %20 = load i8, i8* %19, align 8, !dbg !93 call void @sp_add_five(i8* %17, i8 zeroext %20), !dbg !94 br label %29, !dbg !95 21: ; preds = %1 %22 = load %struct.message*, %struct.message** %2, align 8, !dbg !96 %23 = getelementptr inbounds %struct.message, %struct.message* %22, i32 0, i32 1, !dbg !97 %24 = load i8*, i8** %23, align 8, !dbg !97 %25 = load %struct.message*, %struct.message** %2, align 8, !dbg !98 %26 = getelementptr inbounds %struct.message, %struct.message* %25, i32 0, i32 2, !dbg !99 %27 = load i8, i8* %26, align 8, !dbg !99 call void @sp_double(i8* %24, i8 zeroext %27), !dbg !100 br label %29, !dbg !101 28: ; preds = %1 br label %29, !dbg !102 29: ; preds = %28, %21, %14, %7 ret void, !dbg !103 } ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @broker_publish(%struct.broker* %0, %struct.message* %1) #0 !dbg !104 { %3 = alloca %struct.broker*, align 8 %4 = alloca %struct.message*, align 8 store %struct.broker* %0, %struct.broker** %3, align 8 call void @llvm.dbg.declare(metadata %struct.broker** %3, metadata !107, metadata !DIExpression()), !dbg !108 store %struct.message* %1, %struct.message** %4, align 8 call void @llvm.dbg.declare(metadata %struct.message** %4, metadata !109, metadata !DIExpression()), !dbg !110 %5 = load %struct.broker*, %struct.broker** %3, align 8, !dbg !111 %6 = getelementptr inbounds %struct.broker, %struct.broker* %5, i32 0, i32 0, !dbg !112 %7 = load %struct.broker*, %struct.broker** %3, align 8, !dbg !113 %8 = getelementptr inbounds %struct.broker, %struct.broker* %7, i32 0, i32 2, !dbg !114 %9 = load i8, i8* %8, align 1, !dbg !115 %10 = add i8 %9, 1, !dbg !115 store i8 %10, i8* %8, align 1, !dbg !115 %11 = zext i8 %9 to i64, !dbg !111 %12 = getelementptr [10 x %struct.message], [10 x %struct.message]* %6, i64 0, i64 %11, !dbg !111 %13 = load %struct.message*, %struct.message** %4, align 8, !dbg !116 %14 = bitcast %struct.message* %12 to i8*, !dbg !117 %15 = bitcast %struct.message* %13 to i8*, !dbg !117 call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 8 %15, i64 24, i1 false), !dbg !117 ret void, !dbg !118 } ; Function Attrs: argmemonly nounwind willreturn declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2 ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @sp_clear(i8* %0, i8 zeroext %1) #0 !dbg !119 { %3 = alloca i8*, align 8 %4 = alloca i8, align 1 %5 = alloca i8, align 1 store i8* %0, i8** %3, align 8 call void @llvm.dbg.declare(metadata i8** %3, metadata !122, metadata !DIExpression()), !dbg !123 store i8 %1, i8* %4, align 1 call void @llvm.dbg.declare(metadata i8* %4, metadata !124, metadata !DIExpression()), !dbg !125 call void @llvm.dbg.declare(metadata i8* %5, metadata !126, metadata !DIExpression()), !dbg !128 store i8 0, i8* %5, align 1, !dbg !128 br label %6, !dbg !129 6: ; preds = %17, %2 %7 = load i8, i8* %5, align 1, !dbg !130 %8 = zext i8 %7 to i32, !dbg !130 %9 = load i8, i8* %4, align 1, !dbg !132 %10 = zext i8 %9 to i32, !dbg !132 %11 = icmp slt i32 %8, %10, !dbg !133 br i1 %11, label %12, label %20, !dbg !134 12: ; preds = %6 %13 = load i8*, i8** %3, align 8, !dbg !135 %14 = load i8, i8* %5, align 1, !dbg !137 %15 = zext i8 %14 to i64, !dbg !135 %16 = getelementptr i8, i8* %13, i64 %15, !dbg !135 store i8 0, i8* %16, align 1, !dbg !138 br label %17, !dbg !139 17: ; preds = %12 %18 = load i8, i8* %5, align 1, !dbg !140 %19 = add i8 %18, 1, !dbg !140 store i8 %19, i8* %5, align 1, !dbg !140 br label %6, !dbg !141, !llvm.loop !142 20: ; preds = %6 ret void, !dbg !144 } ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @sp_double(i8* %0, i8 zeroext %1) #0 !dbg !145 { %3 = alloca i8*, align 8 %4 = alloca i8, align 1 %5 = alloca i8, align 1 store i8* %0, i8** %3, align 8 call void @llvm.dbg.declare(metadata i8** %3, metadata !146, metadata !DIExpression()), !dbg !147 store i8 %1, i8* %4, align 1 call void @llvm.dbg.declare(metadata i8* %4, metadata !148, metadata !DIExpression()), !dbg !149 call void @llvm.dbg.declare(metadata i8* %5, metadata !150, metadata !DIExpression()), !dbg !152 store i8 0, i8* %5, align 1, !dbg !152 br label %6, !dbg !153 6: ; preds = %21, %2 %7 = load i8, i8* %5, align 1, !dbg !154 %8 = zext i8 %7 to i32, !dbg !154 %9 = load i8, i8* %4, align 1, !dbg !156 %10 = zext i8 %9 to i32, !dbg !156 %11 = icmp slt i32 %8, %10, !dbg !157 br i1 %11, label %12, label %24, !dbg !158 12: ; preds = %6 %13 = load i8*, i8** %3, align 8, !dbg !159 %14 = load i8, i8* %5, align 1, !dbg !161 %15 = zext i8 %14 to i64, !dbg !159 %16 = getelementptr i8, i8* %13, i64 %15, !dbg !159 %17 = load i8, i8* %16, align 1, !dbg !162 %18 = zext i8 %17 to i32, !dbg !162 %19 = mul i32 %18, 2, !dbg !162 %20 = trunc i32 %19 to i8, !dbg !162 store i8 %20, i8* %16, align 1, !dbg !162 br label %21, !dbg !163 21: ; preds = %12 %22 = load i8, i8* %5, align 1, !dbg !164 %23 = add i8 %22, 1, !dbg !164 store i8 %23, i8* %5, align 1, !dbg !164 br label %6, !dbg !165, !llvm.loop !166 24: ; preds = %6 ret void, !dbg !168 } ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @sp_add_five(i8* %0, i8 zeroext %1) #0 !dbg !169 { %3 = alloca i8*, align 8 %4 = alloca i8, align 1 %5 = alloca i8, align 1 store i8* %0, i8** %3, align 8 call void @llvm.dbg.declare(metadata i8** %3, metadata !170, metadata !DIExpression()), !dbg !171 store i8 %1, i8* %4, align 1 call void @llvm.dbg.declare(metadata i8* %4, metadata !172, metadata !DIExpression()), !dbg !173 call void @llvm.dbg.declare(metadata i8* %5, metadata !174, metadata !DIExpression()), !dbg !176 store i8 0, i8* %5, align 1, !dbg !176 br label %6, !dbg !177 6: ; preds = %21, %2 %7 = load i8, i8* %5, align 1, !dbg !178 %8 = zext i8 %7 to i32, !dbg !178 %9 = load i8, i8* %4, align 1, !dbg !180 %10 = zext i8 %9 to i32, !dbg !180 %11 = icmp slt i32 %8, %10, !dbg !181 br i1 %11, label %12, label %24, !dbg !182 12: ; preds = %6 %13 = load i8*, i8** %3, align 8, !dbg !183 %14 = load i8, i8* %5, align 1, !dbg !185 %15 = zext i8 %14 to i64, !dbg !183 %16 = getelementptr i8, i8* %13, i64 %15, !dbg !183 %17 = load i8, i8* %16, align 1, !dbg !186 %18 = zext i8 %17 to i32, !dbg !186 %19 = add i32 %18, 5, !dbg !186 %20 = trunc i32 %19 to i8, !dbg !186 store i8 %20, i8* %16, align 1, !dbg !186 br label %21, !dbg !187 21: ; preds = %12 %22 = load i8, i8* %5, align 1, !dbg !188 %23 = add i8 %22, 1, !dbg !188 store i8 %23, i8* %5, align 1, !dbg !188 br label %6, !dbg !189, !llvm.loop !190 24: ; preds = %6 ret void, !dbg !192 } ; Function Attrs: noinline nounwind optnone sspstrong uwtable define void @sp_send(i8* %0) #0 !dbg !193 { %2 = alloca i8*, align 8 %3 = alloca %struct.message, align 8 store i8* %0, i8** %2, align 8 call void @llvm.dbg.declare(metadata i8** %2, metadata !196, metadata !DIExpression()), !dbg !197 call void @llvm.dbg.declare(metadata %struct.message* %3, metadata !198, metadata !DIExpression()), !dbg !199 %4 = getelementptr inbounds %struct.message, %struct.message* %3, i32 0, i32 0, !dbg !200 store i16 0, i16* %4, align 8, !dbg !200 %5 = getelementptr inbounds %struct.message, %struct.message* %3, i32 0, i32 1, !dbg !200 %6 = load i8*, i8** %2, align 8, !dbg !201 store i8* %6, i8** %5, align 8, !dbg !200 %7 = getelementptr inbounds %struct.message, %struct.message* %3, i32 0, i32 2, !dbg !200 store i8 -56, i8* %7, align 8, !dbg !200 call void @broker_publish(%struct.broker* @broker, %struct.message* %3), !dbg !202 ret void, !dbg !203 } ; Function Attrs: noinline nounwind optnone sspstrong uwtable define i32 @main() #0 !dbg !204 { %1 = alloca %struct.message, align 8 call void @broker_init(%struct.broker* @broker), !dbg !208 call void @llvm.dbg.declare(metadata %struct.message* %1, metadata !209, metadata !DIExpression()), !dbg !210 %2 = bitcast %struct.message* %1 to i8*, !dbg !210 call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %2, i8* align 8 bitcast (%struct.message* @__const.main.msg to i8*), i64 24, i1 false), !dbg !210 call void @broker_publish(%struct.broker* @broker, %struct.message* %1), !dbg !211 %3 = getelementptr inbounds %struct.message, %struct.message* %1, i32 0, i32 0, !dbg !212 store i16 1, i16* %3, align 8, !dbg !213 call void @broker_publish(%struct.broker* @broker, %struct.message* %1), !dbg !214 %4 = getelementptr inbounds %struct.message, %struct.message* %1, i32 0, i32 0, !dbg !215 store i16 2, i16* %4, align 8, !dbg !216 call void @broker_publish(%struct.broker* @broker, %struct.message* %1), !dbg !217 call void @broker_run(%struct.broker* @broker), !dbg !218 ret i32 0, !dbg !219 } attributes #0 = { noinline nounwind optnone sspstrong uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="4" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { nounwind readnone speculatable willreturn } attributes #2 = { argmemonly nounwind willreturn } !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!16, !17, !18, !19} !llvm.ident = !{!20} !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 11.1.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, globals: !3, splitDebugInlining: false, nameTableKind: None) !1 = !DIFile(filename: "disasm-test/tests/p0.c", directory: "/home/kquick/work/RISE/llvm-regr2") !2 = !{} !3 = !{!4, !12, !14} !4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression(DW_OP_constu, 0, DW_OP_stack_value)) !5 = distinct !DIGlobalVariable(name: "MSG_TYPE_CLEAR", scope: !0, file: !1, line: 7, type: !6, isLocal: true, isDefinition: true) !6 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !7) !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint16_t", file: !8, line: 25, baseType: !9) !8 = !DIFile(filename: "/nix/store/rfw51dqr3qn7b6fjy8hmx6f0x3hfwbx6-glibc-2.37-8-dev/include/bits/stdint-uintn.h", directory: "") !9 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint16_t", file: !10, line: 40, baseType: !11) !10 = !DIFile(filename: "/nix/store/rfw51dqr3qn7b6fjy8hmx6f0x3hfwbx6-glibc-2.37-8-dev/include/bits/types.h", directory: "") !11 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned) !12 = !DIGlobalVariableExpression(var: !13, expr: !DIExpression(DW_OP_constu, 1, DW_OP_stack_value)) !13 = distinct !DIGlobalVariable(name: "MSG_TYPE_ADD_FIVE", scope: !0, file: !1, line: 8, type: !6, isLocal: true, isDefinition: true) !14 = !DIGlobalVariableExpression(var: !15, expr: !DIExpression(DW_OP_constu, 2, DW_OP_stack_value)) !15 = distinct !DIGlobalVariable(name: "MSG_TYPE_DOUBLE", scope: !0, file: !1, line: 9, type: !6, isLocal: true, isDefinition: true) !16 = !{i32 7, !"Dwarf Version", i32 4} !17 = !{i32 2, !"Debug Info Version", i32 3} !18 = !{i32 1, !"wchar_size", i32 4} !19 = !{i32 7, !"PIC Level", i32 2} !20 = !{!"clang version 11.1.0"} !21 = distinct !DISubprogram(name: "broker_init", scope: !1, file: !1, line: 29, type: !22, scopeLine: 29, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !22 = !DISubroutineType(types: !23) !23 = !{null, !24} !24 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !25, size: 64) !25 = !DIDerivedType(tag: DW_TAG_typedef, name: "broker_t", file: !1, line: 23, baseType: !26) !26 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "broker", file: !1, line: 19, size: 1984, elements: !27) !27 = !{!28, !42, !43} !28 = !DIDerivedType(tag: DW_TAG_member, name: "msgs", scope: !26, file: !1, line: 20, baseType: !29, size: 1920) !29 = !DICompositeType(tag: DW_TAG_array_type, baseType: !30, size: 1920, elements: !40) !30 = !DIDerivedType(tag: DW_TAG_typedef, name: "message_t", file: !1, line: 17, baseType: !31) !31 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "message", file: !1, line: 13, size: 192, elements: !32) !32 = !{!33, !34, !39} !33 = !DIDerivedType(tag: DW_TAG_member, name: "type", scope: !31, file: !1, line: 14, baseType: !7, size: 16) !34 = !DIDerivedType(tag: DW_TAG_member, name: "payload", scope: !31, file: !1, line: 15, baseType: !35, size: 64, offset: 64) !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !36, size: 64) !36 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !8, line: 24, baseType: !37) !37 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint8_t", file: !10, line: 38, baseType: !38) !38 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char) !39 = !DIDerivedType(tag: DW_TAG_member, name: "payload_len", scope: !31, file: !1, line: 16, baseType: !36, size: 8, offset: 128) !40 = !{!41} !41 = !DISubrange(count: 10) !42 = !DIDerivedType(tag: DW_TAG_member, name: "msg_idx", scope: !26, file: !1, line: 21, baseType: !36, size: 8, offset: 1920) !43 = !DIDerivedType(tag: DW_TAG_member, name: "num_messages", scope: !26, file: !1, line: 22, baseType: !36, size: 8, offset: 1928) !44 = !DILocalVariable(name: "broker", arg: 1, scope: !21, file: !1, line: 29, type: !24) !45 = !DILocation(line: 29, column: 29, scope: !21) !46 = !DILocation(line: 30, column: 5, scope: !21) !47 = !DILocation(line: 30, column: 13, scope: !21) !48 = !DILocation(line: 30, column: 26, scope: !21) !49 = !DILocation(line: 31, column: 1, scope: !21) !50 = distinct !DISubprogram(name: "broker_run", scope: !1, file: !1, line: 33, type: !22, scopeLine: 33, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !51 = !DILocalVariable(name: "broker", arg: 1, scope: !50, file: !1, line: 33, type: !24) !52 = !DILocation(line: 33, column: 28, scope: !50) !53 = !DILocalVariable(name: "i", scope: !54, file: !1, line: 34, type: !36) !54 = distinct !DILexicalBlock(scope: !50, file: !1, line: 34, column: 5) !55 = !DILocation(line: 34, column: 18, scope: !54) !56 = !DILocation(line: 34, column: 10, scope: !54) !57 = !DILocation(line: 34, column: 25, scope: !58) !58 = distinct !DILexicalBlock(scope: !54, file: !1, line: 34, column: 5) !59 = !DILocation(line: 34, column: 29, scope: !58) !60 = !DILocation(line: 34, column: 37, scope: !58) !61 = !DILocation(line: 34, column: 27, scope: !58) !62 = !DILocation(line: 34, column: 5, scope: !54) !63 = !DILocation(line: 36, column: 22, scope: !64) !64 = distinct !DILexicalBlock(scope: !58, file: !1, line: 34, column: 56) !65 = !DILocation(line: 36, column: 30, scope: !64) !66 = !DILocation(line: 36, column: 35, scope: !64) !67 = !DILocation(line: 36, column: 9, scope: !64) !68 = !DILocation(line: 37, column: 5, scope: !64) !69 = !DILocation(line: 34, column: 52, scope: !58) !70 = !DILocation(line: 34, column: 5, scope: !58) !71 = distinct !{!71, !62, !72} !72 = !DILocation(line: 37, column: 5, scope: !54) !73 = !DILocation(line: 38, column: 1, scope: !50) !74 = distinct !DISubprogram(name: "sp_receive", scope: !1, file: !1, line: 67, type: !75, scopeLine: 67, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !75 = !DISubroutineType(types: !76) !76 = !{null, !77} !77 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !30, size: 64) !78 = !DILocalVariable(name: "msg", arg: 1, scope: !74, file: !1, line: 67, type: !77) !79 = !DILocation(line: 67, column: 29, scope: !74) !80 = !DILocation(line: 68, column: 13, scope: !74) !81 = !DILocation(line: 68, column: 18, scope: !74) !82 = !DILocation(line: 68, column: 5, scope: !74) !83 = !DILocation(line: 70, column: 22, scope: !84) !84 = distinct !DILexicalBlock(scope: !74, file: !1, line: 68, column: 24) !85 = !DILocation(line: 70, column: 27, scope: !84) !86 = !DILocation(line: 70, column: 36, scope: !84) !87 = !DILocation(line: 70, column: 41, scope: !84) !88 = !DILocation(line: 70, column: 13, scope: !84) !89 = !DILocation(line: 71, column: 13, scope: !84) !90 = !DILocation(line: 73, column: 25, scope: !84) !91 = !DILocation(line: 73, column: 30, scope: !84) !92 = !DILocation(line: 73, column: 39, scope: !84) !93 = !DILocation(line: 73, column: 44, scope: !84) !94 = !DILocation(line: 73, column: 13, scope: !84) !95 = !DILocation(line: 74, column: 13, scope: !84) !96 = !DILocation(line: 76, column: 23, scope: !84) !97 = !DILocation(line: 76, column: 28, scope: !84) !98 = !DILocation(line: 76, column: 37, scope: !84) !99 = !DILocation(line: 76, column: 42, scope: !84) !100 = !DILocation(line: 76, column: 13, scope: !84) !101 = !DILocation(line: 77, column: 13, scope: !84) !102 = !DILocation(line: 79, column: 13, scope: !84) !103 = !DILocation(line: 81, column: 1, scope: !74) !104 = distinct !DISubprogram(name: "broker_publish", scope: !1, file: !1, line: 40, type: !105, scopeLine: 40, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !105 = !DISubroutineType(types: !106) !106 = !{null, !24, !77} !107 = !DILocalVariable(name: "broker", arg: 1, scope: !104, file: !1, line: 40, type: !24) !108 = !DILocation(line: 40, column: 32, scope: !104) !109 = !DILocalVariable(name: "msg", arg: 2, scope: !104, file: !1, line: 40, type: !77) !110 = !DILocation(line: 40, column: 52, scope: !104) !111 = !DILocation(line: 41, column: 5, scope: !104) !112 = !DILocation(line: 41, column: 13, scope: !104) !113 = !DILocation(line: 41, column: 18, scope: !104) !114 = !DILocation(line: 41, column: 26, scope: !104) !115 = !DILocation(line: 41, column: 38, scope: !104) !116 = !DILocation(line: 41, column: 45, scope: !104) !117 = !DILocation(line: 41, column: 44, scope: !104) !118 = !DILocation(line: 42, column: 1, scope: !104) !119 = distinct !DISubprogram(name: "sp_clear", scope: !1, file: !1, line: 44, type: !120, scopeLine: 44, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !120 = !DISubroutineType(types: !121) !121 = !{null, !35, !36} !122 = !DILocalVariable(name: "signal", arg: 1, scope: !119, file: !1, line: 44, type: !35) !123 = !DILocation(line: 44, column: 25, scope: !119) !124 = !DILocalVariable(name: "signal_len", arg: 2, scope: !119, file: !1, line: 44, type: !36) !125 = !DILocation(line: 44, column: 41, scope: !119) !126 = !DILocalVariable(name: "i", scope: !127, file: !1, line: 45, type: !36) !127 = distinct !DILexicalBlock(scope: !119, file: !1, line: 45, column: 5) !128 = !DILocation(line: 45, column: 18, scope: !127) !129 = !DILocation(line: 45, column: 10, scope: !127) !130 = !DILocation(line: 45, column: 25, scope: !131) !131 = distinct !DILexicalBlock(scope: !127, file: !1, line: 45, column: 5) !132 = !DILocation(line: 45, column: 29, scope: !131) !133 = !DILocation(line: 45, column: 27, scope: !131) !134 = !DILocation(line: 45, column: 5, scope: !127) !135 = !DILocation(line: 46, column: 9, scope: !136) !136 = distinct !DILexicalBlock(scope: !131, file: !1, line: 45, column: 46) !137 = !DILocation(line: 46, column: 16, scope: !136) !138 = !DILocation(line: 46, column: 19, scope: !136) !139 = !DILocation(line: 47, column: 5, scope: !136) !140 = !DILocation(line: 45, column: 42, scope: !131) !141 = !DILocation(line: 45, column: 5, scope: !131) !142 = distinct !{!142, !134, !143} !143 = !DILocation(line: 47, column: 5, scope: !127) !144 = !DILocation(line: 48, column: 1, scope: !119) !145 = distinct !DISubprogram(name: "sp_double", scope: !1, file: !1, line: 50, type: !120, scopeLine: 50, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !146 = !DILocalVariable(name: "signal", arg: 1, scope: !145, file: !1, line: 50, type: !35) !147 = !DILocation(line: 50, column: 26, scope: !145) !148 = !DILocalVariable(name: "signal_len", arg: 2, scope: !145, file: !1, line: 50, type: !36) !149 = !DILocation(line: 50, column: 42, scope: !145) !150 = !DILocalVariable(name: "i", scope: !151, file: !1, line: 51, type: !36) !151 = distinct !DILexicalBlock(scope: !145, file: !1, line: 51, column: 5) !152 = !DILocation(line: 51, column: 18, scope: !151) !153 = !DILocation(line: 51, column: 10, scope: !151) !154 = !DILocation(line: 51, column: 25, scope: !155) !155 = distinct !DILexicalBlock(scope: !151, file: !1, line: 51, column: 5) !156 = !DILocation(line: 51, column: 29, scope: !155) !157 = !DILocation(line: 51, column: 27, scope: !155) !158 = !DILocation(line: 51, column: 5, scope: !151) !159 = !DILocation(line: 52, column: 9, scope: !160) !160 = distinct !DILexicalBlock(scope: !155, file: !1, line: 51, column: 46) !161 = !DILocation(line: 52, column: 16, scope: !160) !162 = !DILocation(line: 52, column: 19, scope: !160) !163 = !DILocation(line: 53, column: 5, scope: !160) !164 = !DILocation(line: 51, column: 42, scope: !155) !165 = !DILocation(line: 51, column: 5, scope: !155) !166 = distinct !{!166, !158, !167} !167 = !DILocation(line: 53, column: 5, scope: !151) !168 = !DILocation(line: 54, column: 1, scope: !145) !169 = distinct !DISubprogram(name: "sp_add_five", scope: !1, file: !1, line: 56, type: !120, scopeLine: 56, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !170 = !DILocalVariable(name: "signal", arg: 1, scope: !169, file: !1, line: 56, type: !35) !171 = !DILocation(line: 56, column: 28, scope: !169) !172 = !DILocalVariable(name: "signal_len", arg: 2, scope: !169, file: !1, line: 56, type: !36) !173 = !DILocation(line: 56, column: 44, scope: !169) !174 = !DILocalVariable(name: "i", scope: !175, file: !1, line: 57, type: !36) !175 = distinct !DILexicalBlock(scope: !169, file: !1, line: 57, column: 5) !176 = !DILocation(line: 57, column: 18, scope: !175) !177 = !DILocation(line: 57, column: 10, scope: !175) !178 = !DILocation(line: 57, column: 25, scope: !179) !179 = distinct !DILexicalBlock(scope: !175, file: !1, line: 57, column: 5) !180 = !DILocation(line: 57, column: 29, scope: !179) !181 = !DILocation(line: 57, column: 27, scope: !179) !182 = !DILocation(line: 57, column: 5, scope: !175) !183 = !DILocation(line: 58, column: 9, scope: !184) !184 = distinct !DILexicalBlock(scope: !179, file: !1, line: 57, column: 46) !185 = !DILocation(line: 58, column: 16, scope: !184) !186 = !DILocation(line: 58, column: 19, scope: !184) !187 = !DILocation(line: 59, column: 5, scope: !184) !188 = !DILocation(line: 57, column: 42, scope: !179) !189 = !DILocation(line: 57, column: 5, scope: !179) !190 = distinct !{!190, !182, !191} !191 = !DILocation(line: 59, column: 5, scope: !175) !192 = !DILocation(line: 60, column: 1, scope: !169) !193 = distinct !DISubprogram(name: "sp_send", scope: !1, file: !1, line: 62, type: !194, scopeLine: 62, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !194 = !DISubroutineType(types: !195) !195 = !{null, !35} !196 = !DILocalVariable(name: "signal", arg: 1, scope: !193, file: !1, line: 62, type: !35) !197 = !DILocation(line: 62, column: 24, scope: !193) !198 = !DILocalVariable(name: "msg", scope: !193, file: !1, line: 63, type: !30) !199 = !DILocation(line: 63, column: 15, scope: !193) !200 = !DILocation(line: 63, column: 21, scope: !193) !201 = !DILocation(line: 63, column: 38, scope: !193) !202 = !DILocation(line: 64, column: 5, scope: !193) !203 = !DILocation(line: 65, column: 1, scope: !193) !204 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 83, type: !205, scopeLine: 83, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) !205 = !DISubroutineType(types: !206) !206 = !{!207} !207 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) !208 = !DILocation(line: 84, column: 5, scope: !204) !209 = !DILocalVariable(name: "msg", scope: !204, file: !1, line: 86, type: !30) !210 = !DILocation(line: 86, column: 15, scope: !204) !211 = !DILocation(line: 87, column: 5, scope: !204) !212 = !DILocation(line: 88, column: 9, scope: !204) !213 = !DILocation(line: 88, column: 14, scope: !204) !214 = !DILocation(line: 89, column: 5, scope: !204) !215 = !DILocation(line: 90, column: 9, scope: !204) !216 = !DILocation(line: 90, column: 14, scope: !204) !217 = !DILocation(line: 91, column: 5, scope: !204) !218 = !DILocation(line: 93, column: 5, scope: !204) !219 = !DILocation(line: 94, column: 1, scope: !204)