Can bypass repr(packed)
checking by using --cap-lints
#26
Labels
C-bug
Category: related to a bug.
C-upstream-bug
Category: This is a bug of compiler or dependencies (the fix may require action in the upstream)
I-unsound
A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness
NOTE: pin-project (not lite) is not affected by this issue. see taiki-e/pin-project#34 (comment) for more.EDIT: see taiki-e/pin-project#342 for pin-project (not lite)
Currently, pin-project-lite uses
safe_packed_borrow
lint to check that the struct is notrepr(packed)
. Unfortunately,safe_packed_borrow
is lint and you can use the rustc's--cap-lints
flag to lower the lint cap level: https://godbolt.org/z/jEf1fGThe current pin-project-lite generates almost the same code as pin-project, but does not have the equivalent of the
repr(packed)
checking that proc-macro(pin-project) does during expansion. (Since the proc-macro-attribute used on the struct expand later than declarative macro used for the struct, a complete fix for the problem is probably impossible untilsafe_packed_borrow
gets a hard error.)The text was updated successfully, but these errors were encountered: