Skip to content

Commit

Permalink
Auto merge of rust-lang#7945 - Serial-ATA:issue-7934, r=flip1995
Browse files Browse the repository at this point in the history
Fix ICE in undocumented_unsafe_blocks

changelog: Fix ICE in [`undocumented_unsafe_blocks`]

closes: rust-lang#7934
  • Loading branch information
bors committed Nov 8, 2021
2 parents 07f4f7c + 2c6f03d commit 6fcdf81
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
4 changes: 3 additions & 1 deletion clippy_lints/src/undocumented_unsafe_blocks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ impl UndocumentedUnsafeBlocks {
let lex_end = (between_span.hi().0 - source_file.start_pos.0) as usize;
let src_str = source_file.src.as_ref()?[lex_start..lex_end].to_string();

let source_start_pos = source_file.start_pos.0 as usize + lex_start;

let mut pos = 0;
let mut comment = false;

Expand All @@ -171,7 +173,7 @@ impl UndocumentedUnsafeBlocks {
if comment {
// Get the line number of the "comment" (really wherever the trailing whitespace ended)
let comment_line_num = source_file
.lookup_file_pos_with_col_display(BytePos((lex_start + pos).try_into().unwrap()))
.lookup_file_pos(BytePos((source_start_pos + pos).try_into().unwrap()))
.0;
// Find the block/local's line number
let block_line_num = tcx.sess.source_map().lookup_char_pos(block_span.lo()).line;
Expand Down
4 changes: 4 additions & 0 deletions tests/ui/crashes/auxiliary/ice-7934-aux.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
fn zero() {
// SAFETY:
unsafe { 0 };
}
7 changes: 7 additions & 0 deletions tests/ui/crashes/ice-7934.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#![warn(clippy::undocumented_unsafe_blocks)]
#![allow(clippy::no_effect)]

#[path = "auxiliary/ice-7934-aux.rs"]
mod zero;

fn main() {}

0 comments on commit 6fcdf81

Please sign in to comment.