-
Notifications
You must be signed in to change notification settings - Fork 139
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
panicked at 'Unable to get layout information?', codegen\mod.rs:1904:33 #479
Comments
Thanks very much for filing this! From a little look at the bindgen code which is panicking, I suspect this is a problem in upstream bindgen. Though I can't be sure - it could be caused by the tweaks I've made to bindgen for autocxx purposes. This seems to be the line which is panicking: } else if is_union && !forward_decl {
// TODO(emilio): It'd be nice to unify this with the struct path
// above somehow.
let layout = layout.expect("Unable to get layout information?");
//...
} So, possibly rust-lang/rust-bindgen#1896 or rust-lang/rust-bindgen#1768, or possibly some new issue. If you're keen to spend some time on this, I would be happy to walk you through the commands required to reduce this to a minimized test case. As you can't send me the source code, this would require you to preprocess on your windows box and then run the minimization step yourself on a Linux box (it may be possible to get the |
Aha, I missed that the unreal headers were freely available, so perhaps I can reproduce this myself. I won't be able to get around to that especially soon, but I'll definitely leave this issue open so that I give it a try in the end. |
I managed to minimize it myself because I was annoyed, and anonymized it. It's literally just an inline forward declaration of a struct Struct
{
void Function(union Union&);
}; autocxx::include_cpp! {
#include "out.h"
exclude_utilities!()
generate_pod!("Struct")
} Updating the OP with the MCVE now. |
Ah terrific. The power of positive annoyance. Thanks! This does indeed affect upstream |
Naive fix at rust-lang/rust-bindgen#2052, let's see if it passes the bindgen tests. |
I'm going to close this issue down - no need to track it here as well as bindgen. If the bindgen fix lands, I'll merge it into the autocxx-adjusted version, of course. |
As far as I can tell, rust-lang/rust-bindgen@b60339e is not merged into autocxx-bindgen yet, so this still causes a panic in autocxx. |
Ah, thanks for that. I'll get on the case. |
OK, should be fixed in autocxx 0.11.1 |
Expected Behavior
autocxx_build would not panic, and either generate code or provide a graceful error.
Actual Behavior
NOTE:
block!()
ing the offendingunion
forward declaration does not prevent the panic.RUST_BACKTRACE=full
cargo check -vvv 2>&1 | clip
Code to Reproduce the Problem
Specifications
Original issue report follows
Actual Behavior
cargo check -vvv 2>&1 | clip
Steps to Reproduce the Problem
This requires UnrealEngine runtime core headers. I'm using 4.26.2. As such, These are freely available but under NDA/EULA that prohibits me from reproducing them here. Thus I can provide my code to reproduce the panic, but can't effectively reduce the test case.
For legal reasons, I should clarify that all of my code used here to get the cxx example to compile were produced through experimentation and reading the public documentation, without reading any Unreal source.
autocxx code that produces the panic
cxx code that works fine
The text was updated successfully, but these errors were encountered: