diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-03-15 02:44:13 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-15 02:44:13 +0100 |
| commit | 62c057911640a269a8bbb1a4a814c146906194ce (patch) | |
| tree | 4e52416f35add2203e59f1a6752f16f8bdcd63a1 /src/test/codegen | |
| parent | 7cdbc87a49b0b705a41a004a6d486b0952521ae7 (diff) | |
| parent | 8e93a01824a2239f1c588c7c0b884c8a2662e929 (diff) | |
| download | rust-62c057911640a269a8bbb1a4a814c146906194ce.tar.gz rust-62c057911640a269a8bbb1a4a814c146906194ce.zip | |
Rollup merge of #69357 - tmiasko:debuginfo-column, r=michaelwoerister
Emit 1-based column numbers in debuginfo * Use byte offsets instead of char position offsets. Resolves #67360. * Use 1-based offsets instead of 0-based ones. Resolves #65437. * Consistently omit column information for msvc targets, matching clang behaviour (previously columns have been omitted from `DILocation`, but not from `DILexicalBlock`).
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/debug-column-msvc.rs | 16 | ||||
| -rw-r--r-- | src/test/codegen/debug-column.rs | 24 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/test/codegen/debug-column-msvc.rs b/src/test/codegen/debug-column-msvc.rs new file mode 100644 index 00000000000..aad8b372a8a --- /dev/null +++ b/src/test/codegen/debug-column-msvc.rs @@ -0,0 +1,16 @@ +// Verify that no column information is emitted for MSVC targets +// +// only-msvc +// compile-flags: -C debuginfo=2 + +// CHECK-NOT: !DILexicalBlock({{.*}}column: {{.*}}) +// CHECK-NOT: !DILocation({{.*}}column: {{.*}}) + +pub fn add(a: u32, b: u32) -> u32 { + a + b +} + +fn main() { + let c = add(1, 2); + println!("{}", c); +} diff --git a/src/test/codegen/debug-column.rs b/src/test/codegen/debug-column.rs new file mode 100644 index 00000000000..f348c48566d --- /dev/null +++ b/src/test/codegen/debug-column.rs @@ -0,0 +1,24 @@ +// Verify that debuginfo column nubmers are 1-based byte offsets. +// +// ignore-windows +// compile-flags: -C debuginfo=2 + +fn main() { + unsafe { + // Column numbers are 1-based. Regression test for #65437. + // CHECK: call void @giraffe(), !dbg [[A:!.*]] + giraffe(); + + // Column numbers use byte offests. Regression test for #67360 + // CHECK: call void @turtle(), !dbg [[B:!.*]] +/* ż */ turtle(); + + // CHECK: [[A]] = !DILocation(line: 10, column: 9, + // CHECK: [[B]] = !DILocation(line: 14, column: 10, + } +} + +extern { + fn giraffe(); + fn turtle(); +} |
