Skip to content

Regression: "SIGFPE: erroneous arithmetic operation" while compiling Servo in release mode #46519

Closed
@SimonSapin

Description

@SimonSapin

Running RUSTFLAGS="-Z time-passes" mach build --release -p style -v, rustc 1.23.0-nightly (5041b3b 2017-11-19) succeeds, rustc 1.23.0-nightly (33374fa 2017-11-20) fails without an error message. Range: 5041b3b...33374fa. #45225 seems to be the only compiler change in that range. CC @eddyb

Full output: https://gist.github.com/anonymous/e0881601130599a2c3853f876b5efc7a

Extract that seems most relevant:

$ RUSTFLAGS="-Z time-passes" mach build --release -p style -v
cargo build -p style --manifest-path /home/simon/servo3/ports/servo/Cargo.toml --release -v
       Fresh unicode-xid v0.0.4
[]
       Fresh style_traits v0.0.1 (file:///home/simon/servo3/components/style_traits)
   Compiling style v0.0.1 (file:///home/simon/servo3/components/style)
     Running `rustc --crate-name []`
  time: 0.113; rss: 82MB	parsing
[]
    time: 0.115; rss: 1659MB	codegen passes [core-fmt-builders.volatile]
    time: 0.042; rss: 1659MB	llvm function passes [style-values-specified-font]
    time: 1.306; rss: 1660MB	llvm module passes [std-collections-hash-map.volatile]
    time: 1.213; rss: 1661MB	llvm module passes [style-properties-declaration_block]
    time: 0.514; rss: 1659MB	llvm module passes [core-result.volatile]
    time: 0.040; rss: 1662MB	llvm function passes [style-animation]
error: Could not compile `style`.

Caused by:
  process didn't exit successfully: `rustc --crate-name style []` (signal: 8, SIGFPE: erroneous arithmetic operation)

time-passes is used to get some idea of what stage of compilation is happening.

So far I have managed to run rustc with correct arguments within gdb.

My daily "build servo with rust nightly" job did not catch this because this only happens in release mode.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions