Open beepster4096 opened 1 year ago
I had to change some of the panic detection in the most recent rustup
PR (due to changes upstream):
You may want to retest after that lands, in case it fixes this issue (but if so, don't close it, as we'd still want to add a test in that case).
It looks like this is fixed in 0.8
Expected Behaviour
Successful compilation
Example & Steps To Reproduce
produces
System Info
Backtrace
Backtrace
``` error: function pointer types are not allowed --> C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\fmt\mod.rs:401:5 | 401 | pub const fn new_v1(pieces: &'a [&'static str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> { | ^ | = note: used by `core::fmt::ArgumentV1<'_>` = note: used by unnamed global (%31) = note: used by unnamed global (%32) = note: used by `&[core::fmt::ArgumentV1<'_>]` = note: used by `core::fmt::Arguments<'_>` note: used from within `gpu::panic` --> C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic.rs:57:38 | 57 | $crate::panicking::panic_fmt($crate::const_format_args!($($t)+)) | ^ note: called by `gpu::main` --> gpu\src\lib.rs:10:5 | 10 | panic(); | ^ note: called by `main` --> gpu\src\lib.rs:8:1 | 8 | #[spirv_std::spirv(fragment)] | ^ error: cannot cast between pointer types from `*struct core::option::Option<&[core::fmt::rt::v1::Argument]> { *[struct core::fmt::rt::v1::Argument { position: u32, format: struct core::fmt::rt::v1::FormatSpec { precision: struct core::fmt::rt::v1::Count { u32, u32 }, width: struct core::fmt::rt::v1::Count { u32, u32 }, flags: u32, fill: u32, align: u8 } }], u32 }` to `**struct fn(&[&'static str], &[core::fmt::ArgumentV1<'_>]) -> core::fmt::Arguments<'_> {core::fmt::Arguments::<'_>::new_v1} { }` --> C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\fmt\mod.rs:405:34 | 405 | Arguments { pieces, fmt: None, args } | ^ | note: used from within `::new_v1`
-->
C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\fmt\mod.rs:405:34
|
405 | Arguments { pieces, fmt: None, args }
| ^
note: called by `gpu::panic`
-->
C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic.rs:57:38
|
57 | $crate::panicking::panic_fmt($crate::const_format_args!($($t)+))
| ^
note: called by `gpu::main`
--> gpu\src\lib.rs:10:5
|
10 | panic();
| ^
note: called by `main`
--> gpu\src\lib.rs:8:1
|
8 | #[spirv_std::spirv(fragment)]
| ^
error: cannot cast between pointer types
from `*[struct &str { *[u8], u32 }; 1]`
to `*[struct &str { *[u8], u32 }]`
-->
C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic.rs:57:38
|
57 | $crate::panicking::panic_fmt($crate::const_format_args!($($t)+))
| ^
|
note: used from within `gpu::panic`
-->
C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic.rs:57:38
|
57 | $crate::panicking::panic_fmt($crate::const_format_args!($($t)+))
| ^
note: called by `gpu::main`
--> gpu\src\lib.rs:10:5
|
10 | panic();
| ^
note: called by `main`
--> gpu\src\lib.rs:8:1
|
8 | #[spirv_std::spirv(fragment)]
| ^
error: cannot cast between pointer types
from `*struct ! { }`
to `*[struct core::fmt::ArgumentV1<'_> { value: *struct core::fmt::Opaque { }, formatter: *fn(*struct core::fmt::Opaque { },
*struct core::fmt::Formatter<'_> { buf: struct &mut dyn core::fmt::Write { *struct dyn core::fmt::Write { }, *[u32; 3] }, width:
struct core::option::Option { u32, u32 }, precision: struct core::option::Option { u32, u32 }, flags: u32, fill: u32,
align: u8 }) -> bool }]`
-->
C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic.rs:57:38
|
57 | $crate::panicking::panic_fmt($crate::const_format_args!($($t)+))
| ^
|
note: used from within `gpu::panic`
-->
C:\Users\DrMeepster\.rustup\toolchains\nightly-2023-03-04-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panic.rs:57:38
|
57 | $crate::panicking::panic_fmt($crate::const_format_args!($($t)+))
| ^
note: called by `gpu::main`
--> gpu\src\lib.rs:10:5
|
10 | panic();
| ^
note: called by `main`
--> gpu\src\lib.rs:8:1
|
8 | #[spirv_std::spirv(fragment)]
| ^
```