Quoting Dan Smith ([email protected]):
> SH> #define CR_COPY_ARRAY(op, SAVE, LIVE, count)                              
> \
> SH>   do {                                                            \
> SH>           __must_be_array(SAVE);                                  \
> SH>           __must_be_array(LIVE);                                  \
> SH>           BUILD_BUG_ON(sizeof(*SAVE) != sizeof(*LIVE));           \
> SH>           if (op == CR_CPT)                                       \
> SH>                   memcpy(SAVE, LIVE, count * sizeof(*SAVE));      \
> SH>           else                                                    \
> SH>                   memcpy(LIVE, SAVE, count * sizeof(*SAVE));      \
> SH>   } while (0)
> 
> SH> Putting the __must_be_array()s inside the condition seems really weird.
> 
> I thought I explained this somewhere.  You'll get a compile warning if

Oh, probably on irc...

> you make __must_be_array() a statement without an lvalue.  If you try
> to stuff the result into a variable that you don't use, you'll get a
> warning about an unused variable.  I did what I did because it seemed
> like a sane way to sidestep both of those issues.
> 
> Maybe a comment is warranted? :)

That's sucky...  yeah i would say a comment, though of course it could
be one of those cases where everyone but me already knows...

-serge
_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to