tree ffbba0f77516643bf1df5d2e821c0ac68b3f06d9
parent 774ac3164adea2be906192769922033c938f18f2
author Nikita Popov <npopov@redhat.com> 1775546617 +0200
committer GitHub <noreply@github.com> 1775546617 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJp1LD5CRC1aQ7uu5UhlAAA/TMQAHX+81O84Q83m7GlS4Qp6D55
 u1AbBHlI2fxh1vKCJxmZrouRF7x1ROKT7YN5CvoRax9vAuvpB6uKftjkTcnqh+to
 usHgqgxd/Uh/RWmmF907QvvB98WtcRvIiOASIVIjJcMsoG6bTzOPHI3PWfEy2npt
 LULjJqCGvlfDsh+Rc1QZF9bd42pfzYGgW9hn7iMAQdc+xezhNwyQXMumNizfjN+Z
 VObbuc4TysziPRkepswjY1NZ4OVt7cjIegW34WGkAKnQAevzziStf9F3PpdC88wT
 5viDmb7pPs/5RICFmt1TJ1VlI9y/tSxa3WO5UbVfayNyNhcjnxo+yzPyl9Rey9ry
 YdAk1Fde8ktCiVTymTd1Y/ecuBWOSKj302KvhS5GWSM0+XzAkYCoC7zBLCR08Oww
 teUgF+LaAu7xcIPmE+5axfMqAMJYjf832KrIXEVXQpWw7ScthLPaGMJZRSqaOGqW
 wn57TCBzYc9p1g/4wN/wuCXT5v/VeZqk/BDt27JU92g4/KetTcIIZ0rRDGJ495xI
 HR3xAD4kAi2OTORQ3IuopJ3D2GSVrk2J1OMSAa/WgpNXANlEReEeAyT50NCExNnA
 nBUly8aQtRFALnuB0VyDGHGVf6MPCcuUePbwdbiaFOxObpbqqg4MOoGDKFYrkHZZ
 0somR5DqRH7/zvTqkEl1
 =5OlK
 -----END PGP SIGNATURE-----
 

[Inline] Allow inlining with null_pointer_is_valid mismatch (#190510)

If the callee has null_pointer_is_valid but the caller does not, we
should still inline and add null_pointer_is_valid to the caller (which
is handled by an already existing inline adjustment rule).

This does mean that optimizations in the caller may be reduced by
unnecessarily preserving null checks, but that's still better than not
inlining at all. In particular, this check causes issues with LTO in the
Linux kernel, as the C portions are compiled with null_pointer_is_valid,
but the Rust portions are not.

The test is modified to show that the previous alwaysinline behavior now
always holds.