[Devel] Re: [RFC v14-rc2][PATCH 24/29] c/r: Add CR_COPY() macro (v4)

Serge E. Hallyn serue at us.ibm.com
Thu Apr 2 12:06:12 PDT 2009


Quoting Dan Smith (danms at us.ibm.com):
> 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
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list