[doc] Note variable shadowing at max macro using statement expression
authorTom de Vries <tdevries@suse.de>
Thu, 11 Apr 2019 15:36:59 +0000 (15:36 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Thu, 11 Apr 2019 15:36:59 +0000 (15:36 +0000)
commitcd7ffd8a9382c78725f3c09b317bdb4739d3654b
tree4a08e65bc698b0c31880d7529f36992deb14011a
parent657184d086a57eb214dda530035563a1ecc3df10
[doc] Note variable shadowing at max macro using statement expression

When suggesting to rewrite the unsafe (with respect to multiple evaluation of
arguments) macro definition:
...
  #define max(a,b) ((a) > (b) ? (a) : (b))
...
into the safe macro definition:
...
  #define maxint(a,b) \
    ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
...
mention the variable shadowing problem for:
...
  #define maxint3(a, b, c) \
    ({int _a = (a), _b = (b), _c = (c); maxint (maxint (_a, _b), _c); })
...

2019-04-11  Tom de Vries  <tdevries@suse.de>

* doc/extend.texi (@node Statement Exprs): Note variable shadowing at
max macro using statement expression.

From-SVN: r270287
gcc/ChangeLog
gcc/doc/extend.texi