1// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s 2 3// CHECK-LABEL: define void @func_with_empty_named_info() 4// Check that translation doens't crash in the presence of an inlineble call 5// with a named loc that has no backing source info. 6llvm.func @callee() { 7 llvm.return 8} loc("calleesource.cc":1:1) 9llvm.func @func_with_empty_named_info() { 10 llvm.call @callee() : () -> () loc("named with no line info") 11 llvm.return 12} 13 14// CHECK-LABEL: define void @func_no_debug() 15// CHECK-NOT: !dbg 16llvm.func @func_no_debug() { 17 llvm.return loc(unknown) 18} loc(unknown) 19 20// CHECK-LABEL: define void @func_with_debug() 21// CHECK-SAME: !dbg ![[FUNC_LOC:[0-9]+]] 22llvm.func @func_with_debug() { 23 // CHECK: call void @func_no_debug(), !dbg ![[CALLSITE_LOC:[0-9]+]] 24 llvm.call @func_no_debug() : () -> () loc(callsite("mysource.cc":3:4 at "mysource.cc":5:6)) 25 26 // CHECK: call void @func_no_debug(), !dbg ![[FILE_LOC:[0-9]+]] 27 llvm.call @func_no_debug() : () -> () loc("foo.mlir":1:2) 28 29 // CHECK: call void @func_no_debug(), !dbg ![[NAMED_LOC:[0-9]+]] 30 llvm.call @func_no_debug() : () -> () loc("named"("foo.mlir":10:10)) 31 32 // CHECK: call void @func_no_debug(), !dbg ![[FUSED_LOC:[0-9]+]] 33 llvm.call @func_no_debug() : () -> () loc(fused[callsite("mysource.cc":1:1 at "mysource.cc":5:6), "mysource.cc":1:1]) 34 35 llvm.return 36} loc("foo.mlir":1:1) 37 38// CHECK-DAG: ![[FUNC_LOC]] = distinct !DISubprogram{{.*}}, line: 1 39// CHECK-DAG: ![[CALLSITE_LOC]] = !DILocation(line: 3, column: 4, 40// CHECK-DAG: ![[FILE_LOC]] = !DILocation(line: 1, column: 2, 41// CHECK-DAG: ![[NAMED_LOC]] = !DILocation(line: 10, column: 10 42// CHECK-DAG: ![[FUSED_LOC]] = !DILocation(line: 1, column: 1 43