On Mon, 28 Jul 2025, Junio C Hamano wrote: > Alexander Monakov <amonakov@xxxxxxxxx> writes: > > > +/* > > + * Compiler reassociation barrier: pretend to modify X and Y to disallow > > + * changing evaluation order with respect to following uses of X and Y. > > + */ > > +#ifdef __GNUC__ > > +#define REASSOC_FENCE(x, y) asm("" : "+r"(x), "+r"(y)) > > +#else > > +#define REASSOC_FENCE(x, y) > > +#endif > > With gcc we can build, but with clang, we unfortunately get this: > > $ make CC=clang DEVELOPER=YesPlease > xdiff/xutils.c:330:4: error: extension used [-Werror,-Wlanguage-extension-token] > 330 | REASSOC_FENCE(c0, ha); > | ^ > xdiff/xutils.c:302:29: note: expanded from macro 'REASSOC_FENCE' > 302 | #define REASSOC_FENCE(x, y) asm("" : "+r"(x), "+r"(y)) > | ^ Sorry, wasn't aware that Clang would warn. The solution is to spell 'asm' with double underscores, __asm__. I'll make this change if I post a v2. Thanks. Alexander