#if inside macro call is undefined behaviour under the C standard
(3.8.3 paragraph 10 for C90, 6.8.10 paragraph 11 for C99).
The same effect can be achieved with a slightly more verbose construct,
putting the whole macro call inside the #ifdef/#else/#endif.
goto out;
}
perm = (mode_t)lval;
- ADDCMD('=', (STANDARD_BITS
#ifdef S_ISTXT
- |S_ISTXT
+ ADDCMD('=', (STANDARD_BITS|S_ISTXT), perm, mask);
+#else
+ ADDCMD('=', (STANDARD_BITS), perm, mask);
#endif
- ), perm, mask);
set->cmd = 0;
return (saveset);
}