Skip to content

[hlsl-out] let a = array<f32>(); causes a crash #8442

@ErichDonGubler

Description

@ErichDonGubler

If one uses the following WGSL shader:

@compute @workgroup_size(1)
fn main() {
    let a = array<f32>(); // pretty sure this is invalid
}

…to emit HLSL via naga-cli, then the process crashes like this:

RUST_BACKTRACE=1 cargo run -p naga-cli --quiet -- ../in.wgsl ../out.hlsl

thread 'main' panicked at naga\src\back\hlsl\conv.rs:115:18:
internal error: entered unreachable code
stack backtrace:
   0: std::panicking::begin_panic_handler
             at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\panicking.rs:697
   1: core::panicking::panic_fmt
             at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\core\src\panicking.rs:75
   2: core::panicking::panic
             at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\core\src\panicking.rs:145
   3: enum2$<naga::ir::TypeInner>::hlsl_type_id
             at .\naga\src\back\hlsl\conv.rs:115
   4: naga::back::hlsl::Writer<ref_mut$<alloc::string::String> >::write_wrapped_zero_value_function_name<ref_mut$<alloc::string::String> >
             at .\naga\src\back\hlsl\help.rs:2251
   5: naga::back::hlsl::Writer<ref_mut$<alloc::string::String> >::write_wrapped_zero_value_function<ref_mut$<alloc::string::String> >
             at .\naga\src\back\hlsl\help.rs:2283
   6: naga::back::hlsl::Writer<ref_mut$<alloc::string::String> >::write_wrapped_zero_value_functions<ref_mut$<alloc::string::String> >
             at .\naga\src\back\hlsl\help.rs:1350
   7: naga::back::hlsl::Writer<ref_mut$<alloc::string::String> >::write_wrapped_functions<ref_mut$<alloc::string::String> >
             at .\naga\src\back\hlsl\help.rs:1838
   8: naga::back::hlsl::Writer<ref_mut$<alloc::string::String> >::write<ref_mut$<alloc::string::String> >
             at .\naga\src\back\hlsl\writer.rs:508
   9: naga::write_output
             at .\naga-cli\src\bin\naga.rs:918
  10: naga::run
             at .\naga-cli\src\bin\naga.rs:648
  11: naga::main
             at .\naga-cli\src\bin\naga.rs:402
  12: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
             at C:\Users\<snip>\.rustup\toolchains\1.88-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:250
  13: core::hint::black_box
             at C:\Users\<snip>\.rustup\toolchains\1.88-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\hint.rs:482
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Originally reported by @stefnotch in bug 1997070 in Mozilla's bug tracker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: naga back-endOutputs of naga shader conversionarea: validationIssues related to validation, diagnostics, and error handlinglang: HLSLD3D Shading LanguagenagaShader Translatortype: bugSomething isn't working

    Type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions