From c237d4f859c47ddc3f03b485915d2cadbd741a1c Mon Sep 17 00:00:00 2001 From: Ryan Cumming Date: Mon, 26 Feb 2018 19:25:10 +1100 Subject: [PATCH] Add test for #48508 This is named for the issue as it's testing the specific details of that bug. It's a bit tricky as the ICE requires multiple files and debug info enabled to trigger. --- src/test/run-pass/issue-48508-aux.rs | 16 ++++++++++++++++ src/test/run-pass/issue-48508.rs | 27 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/test/run-pass/issue-48508-aux.rs create mode 100644 src/test/run-pass/issue-48508.rs diff --git a/src/test/run-pass/issue-48508-aux.rs b/src/test/run-pass/issue-48508-aux.rs new file mode 100644 index 00000000000..a00361a2c9d --- /dev/null +++ b/src/test/run-pass/issue-48508-aux.rs @@ -0,0 +1,16 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// ignore-test Not a test. Used by issue-48508.rs + +pub fn other() -> f64 { + let µ = 1.0; + µ +} diff --git a/src/test/run-pass/issue-48508.rs b/src/test/run-pass/issue-48508.rs new file mode 100644 index 00000000000..303ea2aa601 --- /dev/null +++ b/src/test/run-pass/issue-48508.rs @@ -0,0 +1,27 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Regression test for issue #48508: +// +// Confusion between global and local file offsets caused incorrect handling of multibyte character +// spans when compiling multiple files. One visible effect was an ICE generating debug information +// when a multibyte character is at the end of a scope. The problematic code is actually in +// issue-48508-aux.rs + +// compile-flags:-g + +#![feature(non_ascii_idents)] + +#[path = "issue-48508-aux.rs"] +mod other_file; + +fn main() { + other_file::other(); +}