On Tue, 18 Aug 2025, Jan Beulich wrote: > On 19.08.2025 01:45, Stefano Stabellini wrote: > > On Mon, 18 Aug 2025, Dmytro Prokopchuk1 wrote: > >> On 8/4/25 11:02, Jan Beulich wrote: > >>> On 02.08.2025 19:48, Dmytro Prokopchuk1 wrote: > >>>> There are a lot of MISRA C R17.7 violations in the XEN. > >>>> This rule states: "The value returned by a function having non-void > >>>> return type shall be used". > >>>> > >>>> Actually, need to decide how to deal with these violations. > >>>> Quick analyze shown that there are different cases in XEN code base. > >>> > >>> Long ago, when we discussed the rules in a mainly abstract way, there > >>> already > >>> was quite a bit of discussion around this. Stefano - I wonder if you had > >>> taken (and have kept) notes back at the time? > >>> > >>> Jan > >> > >> Hi Stefano. > >> > >> This is a kind reminder. > > > > Yes, I am appending below the unmodified notes which I took when we > > discussed R17.7. It looks like the decision was to accept the rule and > > use a mix of deviations and void casts to reach compliance. > > > > > > MISRA 17.7 Use expressions' results > > ----------------------------------- > > > > ACCEPT 17.7 > > > > Returning void when appropriate > > > > When function results are used on some of the times. Use a comment to > > explain why the return value is ignored and a void cast so that the > > warning doesn't trigger (there is also a gcc warning). > > > > Some functions are returning a value just for convenience (e.g. memcpy). > > They need to be deviated. > > > > Add must_check to all functions by default somehow? So that developers > > will get automatic feedback when they do develpment without having to > > wait for ECLAIR > > Isn't doing this "by default" equivalent to enabling the compiler warning? > If doing this by default (one way or another), it'll need to be clear how > to mark functions as "exceptions" (like memcpy() that you mention).
Indeed, that is the problem. I think the idea was to employ a different strategy depending on whether the function returns an error or simply provides optional information. For functions that return errors, we would use explicit (void) casts. For functions that return optional information, we would apply global deviations. Of course, these are only general guidelines. If a function that returns errors has thousands of violations, making it impractical to address each one individually, we would likely opt for a global deviation in that case as well.