[PATCH] D91913: Suppress non-conforming GNU paste extension in all standard-conforming modes
Harald van Dijk via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 27 17:00:58 PST 2021
hvdijk added a comment.
In D91913#2526866 <https://reviews.llvm.org/D91913#2526866>, @dmajor wrote:
> If I'm reading git correctly, the change is still present on the 12.x branch. Should it be reverted there too?
I could have sworn that I saw it already reverted on the 12.x branch too, but I don't know what it was that I was looking at. It doesn't make sense to me to leave it applied on 12.x but not have it applied on main. Unless it can be reapplied on main, yes, I think it should be reverted on the 12.x branch.
And I might as well include this here for the benefit of anyone else affected by this in the future: adapting Jens Gustedt's trick just a little bit, given the below, `MAYBE_COMMA(__VA_ARGS__) __VA_ARGS__` is pretty much a drop-in replacement for `__VA_OPT__(,) __VA_ARGS__`, assuming no odd macro arguments are used. It's not exactly the same thing as `, ## __VA_ARGS__`, but generally close enough.
#define ARG128( \
_0, _1, _2, _3, _4, _5, _6, _7, \
_8, _9, _10, _11, _12, _13, _14, _15, \
_16, _17, _18, _19, _20, _21, _22, _23, \
_24, _25, _26, _27, _28, _29, _30, _31, \
_32, _33, _34, _35, _36, _37, _38, _39, \
_40, _41, _42, _43, _44, _45, _46, _47, \
_48, _49, _50, _51, _52, _53, _54, _55, \
_56, _57, _58, _59, _60, _61, _62, _63, \
_64, _65, _66, _67, _68, _69, _70, _71, \
_72, _73, _74, _75, _76, _77, _78, _79, \
_80, _81, _82, _83, _84, _85, _86, _87, \
_88, _89, _90, _91, _92, _93, _94, _95, \
_96, _97, _98, _99, _100, _101, _102, _103, \
_104, _105, _106, _107, _108, _109, _110, _111, \
_112, _113, _114, _115, _116, _117, _118, _119, \
_120, _121, _122, _123, _124, _125, _126, _127, \
...) _127
#define IF_HAS_COMMA(a, b, ...) \
/* Expands to a if __VA_ARGS__ contains a comma, b otherwise. */ \
ARG128(__VA_ARGS__ \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, \
a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, b,)
#define CONCAT_5_(a, b, c, d, e) a ## b ## c ## d ## e
#define CONCAT_5(a, b, c, d, e) CONCAT_5_(a, b, c, d, e)
#define COMMA(...) ,
#define EMPTY(...)
#define MAYBE_COMMA_1000 ,
#define MAYBE_COMMA(...) \
/* Expands to , if __VA_ARGS__ is non-empty, nothing otherwise. */ \
IF_HAS_COMMA(EMPTY, COMMA, CONCAT_5(MAYBE_COMMA_, \
IF_HAS_COMMA(1, 0, COMMA __VA_ARGS__ ()), \
IF_HAS_COMMA(1, 0, __VA_ARGS__ ), \
IF_HAS_COMMA(1, 0, COMMA __VA_ARGS__ ), \
IF_HAS_COMMA(1, 0, __VA_ARGS__ ())))()
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91913/new/
https://reviews.llvm.org/D91913
More information about the cfe-commits
mailing list