diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-06-13 08:37:41 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-13 08:37:41 +0000 |
commit | 5a62eb20638eab1cbad99e25db6126875b12bf2d (patch) | |
tree | f4d27ee7d37d619511ef1510379d36d320f0ca2a /gcc | |
parent | e6d32d59f1e6524df667262c509910e44151bbf2 (diff) | |
parent | 11493cccd7e7fc5ea31e37581323f85eca58ca0c (diff) | |
download | gcc-5a62eb20638eab1cbad99e25db6126875b12bf2d.zip gcc-5a62eb20638eab1cbad99e25db6126875b12bf2d.tar.gz gcc-5a62eb20638eab1cbad99e25db6126875b12bf2d.tar.bz2 |
Merge #1309
1309: Fix lexing of empty comments continuing till next line r=CohenArthur a=nirmal-j-patel
Empty comments (comments without any characters including spaces after //) had a bug during lexing. The lexer did not recheck the current character after skipping / characters. When there was no character after //, the lexer skipped the next newline character. This caused lexer to count the next line as a part of the comment to. This commit fixes this bug by rechecking current character after skipping two / characters.
Fixes #1306
Signed-off-by: Nirmal Patel <nirmal@nirmal.dev>
Co-authored-by: Nirmal Patel <nirmal@nirmal.dev>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/lex/rust-lex.cc | 1 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/empty_comment_before_match.rs | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/rust/lex/rust-lex.cc b/gcc/rust/lex/rust-lex.cc index 023b676..9e0595b 100644 --- a/gcc/rust/lex/rust-lex.cc +++ b/gcc/rust/lex/rust-lex.cc @@ -489,6 +489,7 @@ Lexer::build_token () // (but not an inner or outer doc comment) skip_input (); current_column += 2; + current_char = peek_input (); // basically ignore until line finishes while (current_char != '\n' && current_char != EOF) diff --git a/gcc/testsuite/rust/compile/empty_comment_before_match.rs b/gcc/testsuite/rust/compile/empty_comment_before_match.rs new file mode 100644 index 0000000..3d344d3 --- /dev/null +++ b/gcc/testsuite/rust/compile/empty_comment_before_match.rs @@ -0,0 +1,7 @@ +fn foo (x: i8) -> i32 { // { dg-warning "function is never used" } + // + match x { + 1 => { return 1; } + _ => { return 0; } + } +} |