Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICE: assertion failed: bpos.to_u32() >= mbc.pos.to_u32() + mbc.bytes as u32 #110885

Closed
WendyWjt opened this issue Apr 27, 2023 · 6 comments · Fixed by #110985
Closed

ICE: assertion failed: bpos.to_u32() >= mbc.pos.to_u32() + mbc.bytes as u32 #110885

WendyWjt opened this issue Apr 27, 2023 · 6 comments · Fixed by #110985
Labels
A-inline-assembly Area: Inline assembly (`asm!(…)`) C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@WendyWjt
Copy link

WendyWjt commented Apr 27, 2023

Hi I got two confusions when trying to use global_asm and integrate some assembly codes.

  1. I got the internal compiler error listed as below;
  2. The error messages look wierd with arrows confusingly pointing to blankets or some existing labels. (If I just misunderstood them please correct me)

Any Help would be appreciated very much :D

Code

use core::arch::global_asm;

global_asm!(include_str!("./arm/func.S"), options(raw));
global_asm!(include_str!("./bug/bug.s"), options(raw));

fn main() {

}

func.S:

#include "macro_a.S"
#include "macro_b.S"
#include "macro_c.S"

.text
.arch armv8-a+crypto

.globl SOME_FUNC_A
.type SOME_FUNC_A,%function
.align 4
SOME_FUNC_A:
    IN_STP                                      // 寄存器保护
    b.eq .LEnc_1_process                      // 跳转
    b.eq .LEnc_2_process                      // 跳转
    b .LEnc_3_process                         // 跳转

.LEnc_1_process:
    LOAD_HASH_TABLE                            // 加载g
    b.le .LEnc_end                              // 第一次64字节处理完毕,判断剩余长度
    b .LEnc_1_loop                            // 进入循环处理流程

.LEnc_2_process:
    LOAD_HASH_TABLE                                                // load hash table
    b.le .LEnc_end
    b .LEnc_2_loop

.LEnc_3_process:
    LOAD_HASH_TABLE
    b.le .LEnc_end
    b .LEnc_3_loop

.LEnc_1_loop:
    ENC1_LOOP                         // 处理64字节
    b.le .LEnc_end                          // 剩余块数为0, 退出循环
    b .LEnc_1_loop                        // 继续循环

.LEnc_2_loop:
    ENC2_LOOP
    b.le .LEnc_end                          // <= 0
    b .LEnc_2_loop

.LEnc_3_loop:
    ENC3_LOOP
    b.le .LEnc_end                          // <= 0
    b .LEnc_3_loop

.LEnc_end:
    HASH_BLOCK
    OUT_STP

.LEnc_ret:
    ret
.size SOME_FUNC_A,.-SOME_FUNC_A

bug.s:

#include "macro_a.S"
#include "macro_b.S"
#include "macro_c.S"

.globl SOME_FUNC_A
.type SOME_FUNC_A,%function
.align 4
SOME_FUNC_A:
    IN_STP                                      // 寄存器保护
    b.eq .LEnc_1_process                      // 跳转1处理逻辑
    b.eq .LEnc_2_process                      // 跳转2处理逻辑
    b .LEnc_3_process                         // 跳转3处理逻辑

.LEnc_1_process:
    b .LEnc_1_loop                            // 进入循环处理流程

.LEnc_1_loop:
    b .LEnc_1_loop                        // 继续循环
.size SOME_FUNC_A,.-SOME_FUNC_A

Meta

rustc --version --verbose:

<version>
rustc 1.67.0 (fc594f156 2023-01-24)
binary: rustc
commit-hash: fc594f15669680fa70d255faec3ca3fb507c3405
commit-date: 2023-01-24
host: aarch64-unknown-linux-gnu
release: 1.67.0
LLVM version: 15.0.6

Error output

<output>
Backtrace

<backtrace>

   Compiling main v0.1.0 (/usr1/w00620137/rust_dev/test/main)
error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:12:16
   |
12 |     IN_STP                                      // 寄存器保护
   |                ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:18:22
   |
18 |     LOAD_HASH_TABLE                            // 加载g
   |                      ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:23:27
   |
23 |     LOAD_HASH_TABLE                                                // load hash table
   |                           ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:29:12
   |
29 |     b.le .LEnc_end
   |            ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:33:37
   |
33 |     ENC1_LOOP                         // 处理64字节
   |                                     ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:39:28
   |
39 |     b.le .LEnc_end                          // <= 0
   |                            ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:44:33
   |
44 |     b.le .LEnc_end                          // <= 0
   |                                 ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:53:5
   |
53 | .size SOME_FUNC_A,.-SOME_FUNC_A
   |     ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:53:21
   |
53 | .size SOME_FUNC_A,.-SOME_FUNC_A
   |                     ^

error: symbol 'SOME_FUNC_A' is already defined
   |
note: instantiated into assembly here
  --> <inline asm>:62:48
   |
62 |     IN_STP                                      // 寄存器保护
   |                                                ^

thread 'rustc' panicked at 'assertion failed: bpos.to_u32() >= mbc.pos.to_u32() + mbc.bytes as u32', compiler/rustc_span/src/lib.rs:1698:17
stack backtrace:
   0: rust_begin_unwind
             at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/panicking.rs:64:14
   2: core::panicking::panic
             at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/panicking.rs:111:5
   3: <rustc_span::SourceFile>::lookup_file_pos
   4: <rustc_span::SourceFile>::lookup_file_pos_with_col_display
   5: <rustc_span::source_map::SourceMap>::lookup_char_pos
   6: <rustc_errors::emitter::EmitterWriter>::get_multispan_max_line_num
   7: <rustc_errors::emitter::EmitterWriter>::emit_messages_default
   8: <rustc_errors::emitter::EmitterWriter as rustc_errors::emitter::Emitter>::emit_diagnostic
   9: <rustc_errors::json::Diagnostic>::from_errors_diagnostic
  10: <rustc_errors::json::JsonEmitter as rustc_errors::emitter::Emitter>::emit_diagnostic
  11: <rustc_errors::HandlerInner>::emit_diagnostic
  12: <() as rustc_errors::diagnostic_builder::EmissionGuarantee>::diagnostic_builder_emit_producing_guarantee
  13: <rustc_codegen_ssa::back::write::SharedEmitterMain>::check
  14: <rustc_codegen_ssa::back::write::OngoingCodegen<rustc_codegen_llvm::LlvmCodegenBackend>>::join
  15: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::join_codegen
  16: <rustc_interface::queries::Linker>::link
  17: rustc_span::with_source_map::<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustc_driver::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  18: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorGuaranteed>, rustc_driver::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.67.0 (fc594f156 2023-01-24) running on aarch64-unknown-linux-gnu

note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
error: could not compile `main` due to 10 previous errors

@WendyWjt WendyWjt added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Apr 27, 2023
@Amanieu
Copy link
Member

Amanieu commented Apr 27, 2023

You can't use #include with assembly code used by global_asm!. This requires running a C pre-processor over the assembly code which can only be done with build.rs.

However the assertion failure is still a real issue in the compiler.

@Noratrieb Noratrieb added the A-inline-assembly Area: Inline assembly (`asm!(…)`) label Apr 27, 2023
@WendyWjt
Copy link
Author

WendyWjt commented Apr 27, 2023

You can't use #include with assembly code used by global_asm!. This requires running a C pre-processor over the assembly code which can only be done with build.rs.

However the assertion failure is still a real issue in the compiler.

image

(https://modexp.wordpress.com/2018/10/30/arm64-assembly/#comments)

Is it not allowed to use as comments?

@Amanieu
Copy link
Member

Amanieu commented Apr 27, 2023

It won't include macro_a.s, which is what the originally assembly code intended to do. It will instead just be parsed as a comment and ignored.

@WendyWjt
Copy link
Author

WendyWjt commented Apr 27, 2023

Ohh ok I get it. Thank you for your explanations :D

@Amanieu
Copy link
Member

Amanieu commented Apr 27, 2023

I can't reproduce the assertion failure in the latest rustc:

$ rustc --edition 2021 test.rs
error: invalid instruction mnemonic 'in_stp'
   |
note: instantiated into assembly here
  --> <inline asm>:13:5
   |
13 |     IN_STP                                      // 寄存器保护
   |     ^^^^^^

error: invalid instruction mnemonic 'b.eq'
   |
note: instantiated into assembly here
  --> <inline asm>:14:5
   |
14 |     b.eq .LEnc_1_process                      // 跳转
   |     ^^^^

error: invalid instruction mnemonic 'b.eq'
   |
note: instantiated into assembly here
  --> <inline asm>:15:5
   |
15 |     b.eq .LEnc_2_process                      // 跳转
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:16:5
   |
16 |     b .LEnc_3_process                         // 跳转
   |     ^

error: invalid instruction mnemonic 'load_hash_table'
   |
note: instantiated into assembly here
  --> <inline asm>:19:5
   |
19 |     LOAD_HASH_TABLE                            // 加载g
   |     ^^^^^^^^^^^^^^^

error: invalid instruction mnemonic 'b.le'
   |
note: instantiated into assembly here
  --> <inline asm>:20:5
   |
20 |     b.le .LEnc_end                              // 第一次64字节处理完毕,判断剩余长度
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:21:5
   |
21 |     b .LEnc_1_loop                            // 进入循环处理流程
   |     ^

error: invalid instruction mnemonic 'load_hash_table'
   |
note: instantiated into assembly here
  --> <inline asm>:24:5
   |
24 |     LOAD_HASH_TABLE                                                // load hash table
   |     ^^^^^^^^^^^^^^^

error: invalid instruction mnemonic 'b.le'
   |
note: instantiated into assembly here
  --> <inline asm>:25:5
   |
25 |     b.le .LEnc_end
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:26:5
   |
26 |     b .LEnc_2_loop
   |     ^

error: invalid instruction mnemonic 'load_hash_table'
   |
note: instantiated into assembly here
  --> <inline asm>:29:5
   |
29 |     LOAD_HASH_TABLE
   |     ^^^^^^^^^^^^^^^

error: invalid instruction mnemonic 'b.le'
   |
note: instantiated into assembly here
  --> <inline asm>:30:5
   |
30 |     b.le .LEnc_end
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:31:5
   |
31 |     b .LEnc_3_loop
   |     ^

error: invalid instruction mnemonic 'enc1_loop'
   |
note: instantiated into assembly here
  --> <inline asm>:34:5
   |
34 |     ENC1_LOOP                         // 处理64字节
   |     ^^^^^^^^^

error: invalid instruction mnemonic 'b.le'
   |
note: instantiated into assembly here
  --> <inline asm>:35:5
   |
35 |     b.le .LEnc_end                          // 剩余块数为0, 退出循环
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:36:5
   |
36 |     b .LEnc_1_loop                        // 继续循环
   |     ^

error: invalid instruction mnemonic 'enc2_loop'
   |
note: instantiated into assembly here
  --> <inline asm>:39:5
   |
39 |     ENC2_LOOP
   |     ^^^^^^^^^

error: invalid instruction mnemonic 'b.le'
   |
note: instantiated into assembly here
  --> <inline asm>:40:5
   |
40 |     b.le .LEnc_end                          // <= 0
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:41:5
   |
41 |     b .LEnc_2_loop
   |     ^

error: invalid instruction mnemonic 'enc3_loop'
   |
note: instantiated into assembly here
  --> <inline asm>:44:5
   |
44 |     ENC3_LOOP
   |     ^^^^^^^^^

error: invalid instruction mnemonic 'b.le'
   |
note: instantiated into assembly here
  --> <inline asm>:45:5
   |
45 |     b.le .LEnc_end                          // <= 0
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:46:5
   |
46 |     b .LEnc_3_loop
   |     ^

error: invalid instruction mnemonic 'hash_block'
   |
note: instantiated into assembly here
  --> <inline asm>:49:5
   |
49 |     HASH_BLOCK
   |     ^^^^^^^^^^

error: invalid instruction mnemonic 'out_stp'
   |
note: instantiated into assembly here
  --> <inline asm>:50:5
   |
50 |     OUT_STP
   |     ^^^^^^^

error: symbol 'SOME_FUNC_A' is already defined
   |
note: instantiated into assembly here
  --> <inline asm>:65:1
   |
65 | SOME_FUNC_A:
   | ^

error: invalid instruction mnemonic 'in_stp'
   |
note: instantiated into assembly here
  --> <inline asm>:66:5
   |
66 |     IN_STP                                      // 寄存器保护
   |     ^^^^^^

error: invalid instruction mnemonic 'b.eq'
   |
note: instantiated into assembly here
  --> <inline asm>:67:5
   |
67 |     b.eq .LEnc_1_process                      // 跳转1处理逻辑
   |     ^^^^

error: invalid instruction mnemonic 'b.eq'
   |
note: instantiated into assembly here
  --> <inline asm>:68:5
   |
68 |     b.eq .LEnc_2_process                      // 跳转2处理逻辑
   |     ^^^^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:69:5
   |
69 |     b .LEnc_3_process                         // 跳转3处理逻辑
   |     ^

error: symbol '.LEnc_1_process' is already defined
   |
note: instantiated into assembly here
  --> <inline asm>:71:1
   |
71 | .LEnc_1_process:
   | ^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:72:5
   |
72 |     b .LEnc_1_loop                            // 进入循环处理流程
   |     ^

error: symbol '.LEnc_1_loop' is already defined
   |
note: instantiated into assembly here
  --> <inline asm>:74:1
   |
74 | .LEnc_1_loop:
   | ^

error: invalid instruction mnemonic 'b'
   |
note: instantiated into assembly here
  --> <inline asm>:75:5
   |
75 |     b .LEnc_1_loop                        // 继续循环
   |     ^

error: aborting due to 33 previous errors

@WendyWjt
Copy link
Author

WendyWjt commented Apr 28, 2023

Maybe try this one? main.zip

I try to update the rustc version, but the error still exists. I use file and xxd to check the assembly files that can and can't reproduce the ICE, and find some differences: their encodings differ with terminators, one with \r\n (with ICE) and another with only \r (without ICE). Also, error information about unrecognized instruction mnemonic compiling with assembly files with \r\n displays arrows confusingly pointing to blankets, but for files with only \r, error info is the same as yours'. Arrows point to the beginning of the tags or instructions, which makes sense in a way.

I don't know whether the terminator is the root cause. Hope that could help figure it out.

The new meta info I get after updating the rustc version:

Meta

rustc --version --verbose:

<version>

rustc 1.71.0-nightly (b628260df 2023-04-22)
binary: rustc
commit-hash: b628260df0587ae559253d8640ecb8738d3de613
commit-date: 2023-04-22
host: aarch64-unknown-linux-gnu
release: 1.71.0-nightly
LLVM version: 16.0.2

Error output

<output>
Backtrace

<backtrace>


   Compiling main v0.1.0 (/usr1/w00620137/rust_dev/test/main)
error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:12:16
   |
12 |     IN_STP                                      // 寄存器保护
   |                ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:18:22
   |
18 |     LOAD_HASH_TABLE                            // 加载g
   |                      ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:23:27
   |
23 |     LOAD_HASH_TABLE                                                // load hash table
   |                           ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:29:12
   |
29 |     b.le .LEnc_end
   |            ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:33:37
   |
33 |     ENC1_LOOP                         // 处理64字节
   |                                     ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:39:28
   |
39 |     b.le .LEnc_end                          // <= 0
   |                            ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:44:33
   |
44 |     b.le .LEnc_end                          // <= 0
   |                                 ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:53:5
   |
53 | .size SOME_FUNC_A,.-SOME_FUNC_A
   |     ^

error: unrecognized instruction mnemonic
   |
note: instantiated into assembly here
  --> <inline asm>:53:21
   |
53 | .size SOME_FUNC_A,.-SOME_FUNC_A
   |                     ^

error: symbol 'SOME_FUNC_A' is already defined
   |
note: instantiated into assembly here
  --> <inline asm>:62:48
   |
62 |     IN_STP                                      // 寄存器保护
   |                                                ^

thread 'rustc' panicked at 'assertion failed: bpos.to_u32() >= mbc.pos.to_u32() + mbc.bytes as u32', compiler/rustc_span/src/lib.rs:1761:17
stack backtrace:
   0: rust_begin_unwind
             at /rustc/b628260df0587ae559253d8640ecb8738d3de613/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /rustc/b628260df0587ae559253d8640ecb8738d3de613/library/core/src/panicking.rs:67:14
   2: core::panicking::panic
             at /rustc/b628260df0587ae559253d8640ecb8738d3de613/library/core/src/panicking.rs:117:5
   3: <rustc_span::SourceFile>::lookup_file_pos
   4: <rustc_span::SourceFile>::lookup_file_pos_with_col_display
   5: <rustc_span::source_map::SourceMap>::lookup_char_pos
   6: <rustc_errors::emitter::EmitterWriter>::get_multispan_max_line_num
   7: <rustc_errors::emitter::EmitterWriter>::emit_messages_default
   8: <rustc_errors::emitter::EmitterWriter as rustc_errors::emitter::Emitter>::emit_diagnostic
   9: <rustc_errors::json::Diagnostic>::from_errors_diagnostic
  10: <rustc_errors::json::JsonEmitter as rustc_errors::emitter::Emitter>::emit_diagnostic
  11: <rustc_errors::HandlerInner>::emit_diagnostic::{closure#2}
  12: <rustc_errors::HandlerInner>::emit_diagnostic
  13: <rustc_errors::diagnostic_builder::Noted as rustc_errors::diagnostic_builder::EmissionGuarantee>::diagnostic_builder_emit_producing_guarantee
  14: <rustc_codegen_ssa::back::write::SharedEmitterMain>::check
  15: <rustc_codegen_ssa::back::write::OngoingCodegen<rustc_codegen_llvm::LlvmCodegenBackend>>::join
  16: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::join_codegen
  17: <rustc_interface::queries::Linker>::link
  18: rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.71.0-nightly (b628260df 2023-04-22) running on aarch64-unknown-linux-gnu

note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
error: could not compile `main` (bin "main") due to 10 previous errors

The files that can cause the compiler error:

  • func.S
    • file *
      func.S: C source, UTF-8 Unicode text, with CRLF line terminators
      
    • xxd func.S
00000000: 2369 6e63 6c75 6465 2022 6d61 6372 6f5f  #include "macro_
00000010: 612e 5322 0d0a 2369 6e63 6c75 6465 2022  a.S"..#include "
00000020: 6d61 6372 6f5f 622e 5322 0d0a 2369 6e63  macro_b.S"..#inc
00000030: 6c75 6465 2022 6d61 6372 6f5f 632e 5322  lude "macro_c.S"
00000040: 0d0a 0d0a 2e74 6578 740d 0a2e 6172 6368  .....text...arch
00000050: 2061 726d 7638 2d61 2b63 7279 7074 6f0d   armv8-a+crypto.
00000060: 0a0d 0a2e 676c 6f62 6c20 534f 4d45 5f46  ....globl SOME_F
00000070: 554e 435f 410d 0a2e 7479 7065 2053 4f4d  UNC_A...type SOM
00000080: 455f 4655 4e43 5f41 2c25 6675 6e63 7469  E_FUNC_A,%functi
00000090: 6f6e 0d0a 2e61 6c69 676e 2034 0d0a 534f  on...align 4..SO
000000a0: 4d45 5f46 554e 435f 413a 0d0a 2020 2020  ME_FUNC_A:..
000000b0: 494e 5f53 5450 2020 2020 2020 2020 2020  IN_STP
000000c0: 2020 2020 2020 2020 2020 2020 2020 2020
000000d0: 2020 2020 2020 2020 2020 2020 2f2f 20e5              // .
000000e0: af84 e5ad 98e5 99a8 e4bf 9de6 8aa4 0d0a  ................
000000f0: 2020 2020 622e 6571 202e 4c45 6e63 5f31      b.eq .LEnc_1
00000100: 5f70 726f 6365 7373 2020 2020 2020 2020  _process
00000110: 2020 2020 2020 2020 2020 2020 2020 2f2f                //
00000120: 20e8 b7b3 e8bd ac0d 0a20 2020 2062 2e65   ........    b.e
00000130: 7120 2e4c 456e 635f 325f 7072 6f63 6573  q .LEnc_2_proces
00000140: 7320 2020 2020 2020 2020 2020 2020 2020  s
00000150: 2020 2020 2020 202f 2f20 e8b7 b3e8 bdac         // ......
00000160: 0d0a 2020 2020 6220 2e4c 456e 635f 335f  ..    b .LEnc_3_
00000170: 7072 6f63 6573 7320 2020 2020 2020 2020  process
00000180: 2020 2020 2020 2020 2020 2020 2020 2020
00000190: 2f2f 20e8 b7b3 e8bd ac0d 0a0d 0a2e 4c45  // ...........LE
000001a0: 6e63 5f31 5f70 726f 6365 7373 3a0d 0a20  nc_1_process:..
000001b0: 2020 204c 4f41 445f 4841 5348 5f54 4142     LOAD_HASH_TAB
000001c0: 4c45 2020 2020 2020 2020 2020 2020 2020  LE
000001d0: 2020 2020 2020 2020 2020 2020 2020 2f2f                //
000001e0: 20e5 8aa0 e8bd bd67 0d0a 2020 2020 622e   ......g..    b.
000001f0: 6c65 202e 4c45 6e63 5f65 6e64 2020 2020  le .LEnc_end
00000200: 2020 2020 2020 2020 2020 2020 2020 2020
00000210: 2020 2020 2020 2020 2020 2f2f 20e7 acac            // ...
00000220: e4b8 80e6 aca1 3634 e5ad 97e8 8a82 e5a4  ......64........
00000230: 84e7 9086 e5ae 8ce6 af95 efbc 8ce5 88a4  ................
00000240: e696 ade5 89a9 e4bd 99e9 95bf e5ba a60d  ................
00000250: 0a20 2020 2062 202e 4c45 6e63 5f31 5f6c  .    b .LEnc_1_l
00000260: 6f6f 7020 2020 2020 2020 2020 2020 2020  oop
00000270: 2020 2020 2020 2020 2020 2020 2020 202f                 /
00000280: 2f20 e8bf 9be5 85a5 e5be aae7 8eaf e5a4  / ..............
00000290: 84e7 9086 e6b5 81e7 a88b 0d0a 0d0a 2e4c  ...............L
000002a0: 456e 635f 325f 7072 6f63 6573 733a 0d0a  Enc_2_process:..
000002b0: 2020 2020 4c4f 4144 5f48 4153 485f 5441      LOAD_HASH_TA
000002c0: 424c 4520 2020 2020 2020 2020 2020 2020  BLE
000002d0: 2020 2020 2020 2020 2020 2020 2020 2020
000002e0: 2020 2020 2020 2020 2020 2020 2020 2020
000002f0: 2020 202f 2f20 6c6f 6164 2068 6173 6820     // load hash
00000300: 7461 626c 650d 0a20 2020 2062 2e6c 6520  table..    b.le
00000310: 2e4c 456e 635f 656e 640d 0a20 2020 2062  .LEnc_end..    b
00000320: 202e 4c45 6e63 5f32 5f6c 6f6f 700d 0a0d   .LEnc_2_loop...
00000330: 0a2e 4c45 6e63 5f33 5f70 726f 6365 7373  ..LEnc_3_process
00000340: 3a0d 0a20 2020 204c 4f41 445f 4841 5348  :..    LOAD_HASH
00000350: 5f54 4142 4c45 0d0a 2020 2020 622e 6c65  _TABLE..    b.le
00000360: 202e 4c45 6e63 5f65 6e64 0d0a 2020 2020   .LEnc_end..
00000370: 6220 2e4c 456e 635f 335f 6c6f 6f70 0d0a  b .LEnc_3_loop..
00000380: 0d0a 2e4c 456e 635f 315f 6c6f 6f70 3a0d  ...LEnc_1_loop:.
00000390: 0a20 2020 2045 4e43 315f 4c4f 4f50 2020  .    ENC1_LOOP
000003a0: 2020 2020 2020 2020 2020 2020 2020 2020
000003b0: 2020 2020 2020 202f 2f20 e5a4 84e7 9086         // ......
000003c0: 3634 e5ad 97e8 8a82 0d0a 2020 2020 622e  64........    b.
000003d0: 6c65 202e 4c45 6e63 5f65 6e64 2020 2020  le .LEnc_end
000003e0: 2020 2020 2020 2020 2020 2020 2020 2020
000003f0: 2020 2020 2020 2f2f 20e5 89a9 e4bd 99e5        // .......
00000400: 9d97 e695 b0e4 b8ba 302c 20e9 8080 e587  ........0, .....
00000410: bae5 beaa e78e af0d 0a20 2020 2062 202e  .........    b .
00000420: 4c45 6e63 5f31 5f6c 6f6f 7020 2020 2020  LEnc_1_loop
00000430: 2020 2020 2020 2020 2020 2020 2020 2020
00000440: 2020 202f 2f20 e7bb a7e7 bbad e5be aae7     // ..........
00000450: 8eaf 0d0a 0d0a 2e4c 456e 635f 325f 6c6f  .......LEnc_2_lo
00000460: 6f70 3a0d 0a20 2020 2045 4e43 325f 4c4f  op:..    ENC2_LO
00000470: 4f50 0d0a 2020 2020 622e 6c65 202e 4c45  OP..    b.le .LE
00000480: 6e63 5f65 6e64 2020 2020 2020 2020 2020  nc_end
00000490: 2020 2020 2020 2020 2020 2020 2020 2020
000004a0: 2f2f 203c 3d20 300d 0a20 2020 2062 202e  // <= 0..    b .
000004b0: 4c45 6e63 5f32 5f6c 6f6f 700d 0a0d 0a2e  LEnc_2_loop.....
000004c0: 4c45 6e63 5f33 5f6c 6f6f 703a 0d0a 2020  LEnc_3_loop:..
000004d0: 2020 454e 4333 5f4c 4f4f 500d 0a20 2020    ENC3_LOOP..
000004e0: 2062 2e6c 6520 2e4c 456e 635f 656e 6420   b.le .LEnc_end
000004f0: 2020 2020 2020 2020 2020 2020 2020 2020
00000500: 2020 2020 2020 2020 202f 2f20 3c3d 2030           // <= 0
00000510: 0d0a 2020 2020 6220 2e4c 456e 635f 335f  ..    b .LEnc_3_
00000520: 6c6f 6f70 0d0a 0d0a 2e4c 456e 635f 656e  loop.....LEnc_en
00000530: 643a 0d0a 2020 2020 4841 5348 5f42 4c4f  d:..    HASH_BLO
00000540: 434b 0d0a 2020 2020 4f55 545f 5354 500d  CK..    OUT_STP.
00000550: 0a0d 0a2e 4c45 6e63 5f72 6574 3a0d 0a20  ....LEnc_ret:..
00000560: 2020 2072 6574 0d0a 2e73 697a 6520 534f     ret...size SO
00000570: 4d45 5f46 554e 435f 412c 2e2d 534f 4d45  ME_FUNC_A,.-SOME
00000580: 5f46 554e 435f 410d 0a                   _FUNC_A..
  • bug.S
    • file *
      bug.s: C source, UTF-8 Unicode text, with CRLF line terminators
      
    • xxd bug.s
00000000: 2369 6e63 6c75 6465 2022 6d61 6372 6f5f  #include "macro_
00000010: 612e 5322 0d0a 2369 6e63 6c75 6465 2022  a.S"..#include "
00000020: 6d61 6372 6f5f 622e 5322 0d0a 2369 6e63  macro_b.S"..#inc
00000030: 6c75 6465 2022 6d61 6372 6f5f 632e 5322  lude "macro_c.S"
00000040: 0d0a 0d0a 2e67 6c6f 626c 2053 4f4d 455f  .....globl SOME_
00000050: 4655 4e43 5f41 0d0a 2e74 7970 6520 534f  FUNC_A...type SO
00000060: 4d45 5f46 554e 435f 412c 2566 756e 6374  ME_FUNC_A,%funct
00000070: 696f 6e0d 0a2e 616c 6967 6e20 340d 0a53  ion...align 4..S
00000080: 4f4d 455f 4655 4e43 5f41 3a0d 0a20 2020  OME_FUNC_A:..
00000090: 2049 4e5f 5354 5020 2020 2020 2020 2020   IN_STP
000000a0: 2020 2020 2020 2020 2020 2020 2020 2020
000000b0: 2020 2020 2020 2020 2020 2020 202f 2f20               //
000000c0: e5af 84e5 ad98 e599 a8e4 bf9d e68a a40d  ................
000000d0: 0a20 2020 2062 2e65 7120 2e4c 456e 635f  .    b.eq .LEnc_
000000e0: 315f 7072 6f63 6573 7320 2020 2020 2020  1_process
000000f0: 2020 2020 2020 2020 2020 2020 2020 202f                 /
00000100: 2f20 e8b7 b3e8 bdac 31e5 a484 e790 86e9  / ......1.......
00000110: 80bb e8be 910d 0a20 2020 2062 2e65 7120  .......    b.eq
00000120: 2e4c 456e 635f 325f 7072 6f63 6573 7320  .LEnc_2_process
00000130: 2020 2020 2020 2020 2020 2020 2020 2020
00000140: 2020 2020 202f 2f20 e8b7 b3e8 bdac 32e5       // ......2.
00000150: a484 e790 86e9 80bb e8be 910d 0a20 2020  .............
00000160: 2062 202e 4c45 6e63 5f33 5f70 726f 6365   b .LEnc_3_proce
00000170: 7373 2020 2020 2020 2020 2020 2020 2020  ss
00000180: 2020 2020 2020 2020 2020 202f 2f20 e8b7             // ..
00000190: b3e8 bdac 33e5 a484 e790 86e9 80bb e8be  ....3...........
000001a0: 910d 0a0d 0a2e 4c45 6e63 5f31 5f70 726f  ......LEnc_1_pro
000001b0: 6365 7373 3a0d 0a20 2020 2062 202e 4c45  cess:..    b .LE
000001c0: 6e63 5f31 5f6c 6f6f 7020 2020 2020 2020  nc_1_loop
000001d0: 2020 2020 2020 2020 2020 2020 2020 2020
000001e0: 2020 2020 202f 2f20 e8bf 9be5 85a5 e5be       // ........
000001f0: aae7 8eaf e5a4 84e7 9086 e6b5 81e7 a88b  ................
00000200: 0d0a 0d0a 2e4c 456e 635f 315f 6c6f 6f70  .....LEnc_1_loop
00000210: 3a0d 0a20 2020 2062 202e 4c45 6e63 5f31  :..    b .LEnc_1
00000220: 5f6c 6f6f 7020 2020 2020 2020 2020 2020  _loop
00000230: 2020 2020 2020 2020 2020 2020 202f 2f20               //
00000240: e7bb a7e7 bbad e5be aae7 8eaf 0d0a 2e73  ...............s
00000250: 697a 6520 534f 4d45 5f46 554e 435f 412c  ize SOME_FUNC_A,
00000260: 2e2d 534f 4d45 5f46 554e 435f 41         .-SOME_FUNC_A

The files that won't cause the compiler error:

  • func.S
    • file *
      func.S: C source, UTF-8 Unicode text
      
    • xxd func.S
00000000: 2369 6e63 6c75 6465 2022 6d61 6372 6f5f  #include "macro_
00000010: 612e 5322 0a23 696e 636c 7564 6520 226d  a.S".#include "m
00000020: 6163 726f 5f62 2e53 220a 2369 6e63 6c75  acro_b.S".#inclu
00000030: 6465 2022 6d61 6372 6f5f 632e 5322 0a0a  de "macro_c.S"..
00000040: 2e74 6578 740a 2e61 7263 6820 6172 6d76  .text..arch armv
00000050: 382d 612b 6372 7970 746f 0a0a 2e67 6c6f  8-a+crypto...glo
00000060: 626c 2053 4f4d 455f 4655 4e43 5f41 0a2e  bl SOME_FUNC_A..
00000070: 7479 7065 2053 4f4d 455f 4655 4e43 5f41  type SOME_FUNC_A
00000080: 2c25 6675 6e63 7469 6f6e 0a2e 616c 6967  ,%function..alig
00000090: 6e20 340a 534f 4d45 5f46 554e 435f 413a  n 4.SOME_FUNC_A:
000000a0: 0a20 2020 2049 4e5f 5354 5020 2020 2020  .    IN_STP
000000b0: 2020 2020 2020 2020 2020 2020 2020 2020
000000c0: 2020 2020 2020 2020 2020 2020 2020 2020
000000d0: 202f 2f20 e5af 84e5 ad98 e599 a8e4 bf9d   // ............
000000e0: e68a a40a 2020 2020 622e 6571 202e 4c45  ....    b.eq .LE
000000f0: 6e63 5f31 5f70 726f 6365 7373 2020 2020  nc_1_process
00000100: 2020 2020 2020 2020 2020 2020 2020 2020
00000110: 2020 2f2f 20e8 b7b3 e8bd ac0a 2020 2020    // .......
00000120: 622e 6571 202e 4c45 6e63 5f32 5f70 726f  b.eq .LEnc_2_pro
00000130: 6365 7373 2020 2020 2020 2020 2020 2020  cess
00000140: 2020 2020 2020 2020 2020 2f2f 20e8 b7b3            // ...
00000150: e8bd ac0a 2020 2020 6220 2e4c 456e 635f  ....    b .LEnc_
00000160: 335f 7072 6f63 6573 7320 2020 2020 2020  3_process
00000170: 2020 2020 2020 2020 2020 2020 2020 2020
00000180: 2020 2f2f 20e8 b7b3 e8bd ac0a 0a2e 4c45    // .........LE
00000190: 6e63 5f31 5f70 726f 6365 7373 3a0a 2020  nc_1_process:.
000001a0: 2020 4c4f 4144 5f48 4153 485f 5441 424c    LOAD_HASH_TABL
000001b0: 4520 2020 2020 2020 2020 2020 2020 2020  E
000001c0: 2020 2020 2020 2020 2020 2020 202f 2f20               //
000001d0: e58a a0e8 bdbd 670a 2020 2020 622e 6c65  ......g.    b.le
000001e0: 202e 4c45 6e63 5f65 6e64 2020 2020 2020   .LEnc_end
000001f0: 2020 2020 2020 2020 2020 2020 2020 2020
00000200: 2020 2020 2020 2020 2f2f 20e7 acac e4b8          // .....
00000210: 80e6 aca1 3634 e5ad 97e8 8a82 e5a4 84e7  ....64..........
00000220: 9086 e5ae 8ce6 af95 efbc 8ce5 88a4 e696  ................
00000230: ade5 89a9 e4bd 99e9 95bf e5ba a60a 2020  ..............
00000240: 2020 6220 2e4c 456e 635f 315f 6c6f 6f70    b .LEnc_1_loop
00000250: 2020 2020 2020 2020 2020 2020 2020 2020
00000260: 2020 2020 2020 2020 2020 2020 2f2f 20e8              // .
00000270: bf9b e585 a5e5 beaa e78e afe5 a484 e790  ................
00000280: 86e6 b581 e7a8 8b0a 0a2e 4c45 6e63 5f32  ..........LEnc_2
00000290: 5f70 726f 6365 7373 3a0a 2020 2020 4c4f  _process:.    LO
000002a0: 4144 5f48 4153 485f 5441 424c 4520 2020  AD_HASH_TABLE
000002b0: 2020 2020 2020 2020 2020 2020 2020 2020
000002c0: 2020 2020 2020 2020 2020 2020 2020 2020
000002d0: 2020 2020 2020 2020 2020 2020 202f 2f20               //
000002e0: 6c6f 6164 2068 6173 6820 7461 626c 650a  load hash table.
000002f0: 2020 2020 622e 6c65 202e 4c45 6e63 5f65      b.le .LEnc_e
00000300: 6e64 0a20 2020 2062 202e 4c45 6e63 5f32  nd.    b .LEnc_2
00000310: 5f6c 6f6f 700a 0a2e 4c45 6e63 5f33 5f70  _loop...LEnc_3_p
00000320: 726f 6365 7373 3a0a 2020 2020 4c4f 4144  rocess:.    LOAD
00000330: 5f48 4153 485f 5441 424c 450a 2020 2020  _HASH_TABLE.
00000340: 622e 6c65 202e 4c45 6e63 5f65 6e64 0a20  b.le .LEnc_end.
00000350: 2020 2062 202e 4c45 6e63 5f33 5f6c 6f6f     b .LEnc_3_loo
00000360: 700a 0a2e 4c45 6e63 5f31 5f6c 6f6f 703a  p...LEnc_1_loop:
00000370: 0a20 2020 2045 4e43 315f 4c4f 4f50 2020  .    ENC1_LOOP
00000380: 2020 2020 2020 2020 2020 2020 2020 2020
00000390: 2020 2020 2020 202f 2f20 e5a4 84e7 9086         // ......
000003a0: 3634 e5ad 97e8 8a82 0a20 2020 2062 2e6c  64.......    b.l
000003b0: 6520 2e4c 456e 635f 656e 6420 2020 2020  e .LEnc_end
000003c0: 2020 2020 2020 2020 2020 2020 2020 2020
000003d0: 2020 2020 202f 2f20 e589 a9e4 bd99 e59d       // ........
000003e0: 97e6 95b0 e4b8 ba30 2c20 e980 80e5 87ba  .......0, ......
000003f0: e5be aae7 8eaf 0a20 2020 2062 202e 4c45  .......    b .LE
00000400: 6e63 5f31 5f6c 6f6f 7020 2020 2020 2020  nc_1_loop
00000410: 2020 2020 2020 2020 2020 2020 2020 2020
00000420: 202f 2f20 e7bb a7e7 bbad e5be aae7 8eaf   // ............
00000430: 0a0a 2e4c 456e 635f 325f 6c6f 6f70 3a0a  ...LEnc_2_loop:.
00000440: 2020 2020 454e 4332 5f4c 4f4f 500a 2020      ENC2_LOOP.
00000450: 2020 622e 6c65 202e 4c45 6e63 5f65 6e64    b.le .LEnc_end
00000460: 2020 2020 2020 2020 2020 2020 2020 2020
00000470: 2020 2020 2020 2020 2020 2f2f 203c 3d20            // <=
00000480: 300a 2020 2020 6220 2e4c 456e 635f 325f  0.    b .LEnc_2_
00000490: 6c6f 6f70 0a0a 2e4c 456e 635f 335f 6c6f  loop...LEnc_3_lo
000004a0: 6f70 3a0a 2020 2020 454e 4333 5f4c 4f4f  op:.    ENC3_LOO
000004b0: 500a 2020 2020 622e 6c65 202e 4c45 6e63  P.    b.le .LEnc
000004c0: 5f65 6e64 2020 2020 2020 2020 2020 2020  _end
000004d0: 2020 2020 2020 2020 2020 2020 2020 2f2f                //
000004e0: 203c 3d20 300a 2020 2020 6220 2e4c 456e   <= 0.    b .LEn
000004f0: 635f 335f 6c6f 6f70 0a0a 2e4c 456e 635f  c_3_loop...LEnc_
00000500: 656e 643a 0a20 2020 2048 4153 485f 424c  end:.    HASH_BL
00000510: 4f43 4b0a 2020 2020 4f55 545f 5354 500a  OCK.    OUT_STP.
00000520: 0a2e 4c45 6e63 5f72 6574 3a0a 2020 2020  ..LEnc_ret:.
00000530: 7265 740a 2e73 697a 6520 534f 4d45 5f46  ret..size SOME_F
00000540: 554e 435f 412c 2e2d 534f 4d45 5f46 554e  UNC_A,.-SOME_FUN
00000550: 435f 410a                                C_A.
  • bug.S
    • file *
      bug.s: C source, UTF-8 Unicode text
      
    • xxd bug.s
00000000: 2369 6e63 6c75 6465 2022 6d61 6372 6f5f  #include "macro_
00000010: 612e 5322 0a23 696e 636c 7564 6520 226d  a.S".#include "m
00000020: 6163 726f 5f62 2e53 220a 2369 6e63 6c75  acro_b.S".#inclu
00000030: 6465 2022 6d61 6372 6f5f 632e 5322 0a0a  de "macro_c.S"..
00000040: 2e67 6c6f 626c 2053 4f4d 455f 4655 4e43  .globl SOME_FUNC
00000050: 5f41 0a2e 7479 7065 2053 4f4d 455f 4655  _A..type SOME_FU
00000060: 4e43 5f41 2c25 6675 6e63 7469 6f6e 0a2e  NC_A,%function..
00000070: 616c 6967 6e20 340a 534f 4d45 5f46 554e  align 4.SOME_FUN
00000080: 435f 413a 0a20 2020 2049 4e5f 5354 5020  C_A:.    IN_STP
00000090: 2020 2020 2020 2020 2020 2020 2020 2020
000000a0: 2020 2020 2020 2020 2020 2020 2020 2020
000000b0: 2020 2020 202f 2f20 e5af 84e5 ad98 e599       // ........
000000c0: a8e4 bf9d e68a a40a 2020 2020 622e 6571  ........    b.eq
000000d0: 202e 4c45 6e63 5f31 5f70 726f 6365 7373   .LEnc_1_process
000000e0: 2020 2020 2020 2020 2020 2020 2020 2020
000000f0: 2020 2020 2020 2f2f 20e8 b7b3 e8bd ac31        // ......1
00000100: e5a4 84e7 9086 e980 bbe8 be91 0a20 2020  .............
00000110: 2062 2e65 7120 2e4c 456e 635f 325f 7072   b.eq .LEnc_2_pr
00000120: 6f63 6573 7320 2020 2020 2020 2020 2020  ocess
00000130: 2020 2020 2020 2020 2020 202f 2f20 e8b7             // ..
00000140: b3e8 bdac 32e5 a484 e790 86e9 80bb e8be  ....2...........
00000150: 910a 2020 2020 6220 2e4c 456e 635f 335f  ..    b .LEnc_3_
00000160: 7072 6f63 6573 7320 2020 2020 2020 2020  process
00000170: 2020 2020 2020 2020 2020 2020 2020 2020
00000180: 2f2f 20e8 b7b3 e8bd ac33 e5a4 84e7 9086  // ......3......
00000190: e980 bbe8 be91 0a0a 2e4c 456e 635f 315f  .........LEnc_1_
000001a0: 7072 6f63 6573 733a 0a20 2020 2062 202e  process:.    b .
000001b0: 4c45 6e63 5f31 5f6c 6f6f 7020 2020 2020  LEnc_1_loop
000001c0: 2020 2020 2020 2020 2020 2020 2020 2020
000001d0: 2020 2020 2020 202f 2f20 e8bf 9be5 85a5         // ......
000001e0: e5be aae7 8eaf e5a4 84e7 9086 e6b5 81e7  ................
000001f0: a88b 0a0a 2e4c 456e 635f 315f 6c6f 6f70  .....LEnc_1_loop
00000200: 3a0a 2020 2020 6220 2e4c 456e 635f 315f  :.    b .LEnc_1_
00000210: 6c6f 6f70 2020 2020 2020 2020 2020 2020  loop
00000220: 2020 2020 2020 2020 2020 2020 2f2f 20e7              // .
00000230: bba7 e7bb ade5 beaa e78e af0a 2e73 697a  .............siz
00000240: 6520 534f 4d45 5f46 554e 435f 412c 2e2d  e SOME_FUNC_A,.-
00000250: 534f 4d45 5f46 554e 435f 41              SOME_FUNC_A

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue May 6, 2023
…aber

Fix spans in LLVM-generated inline asm errors

Previously, incorrect spans were reported if inline assembly contained CRLF (Windows) line endings.

Fixes rust-lang#110885
@bors bors closed this as completed in bba2a1e May 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-inline-assembly Area: Inline assembly (`asm!(…)`) C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants