constexpr: add support for tagging address constants
commit5aece3c39ccd92d7805f9b332a4253302d1d0ff6
authorNicolai Stange <nicstange@gmail.com>
Mon, 1 Feb 2016 02:36:18 +0000 (1 03:36 +0100)
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>
Fri, 31 Mar 2017 00:26:36 +0000 (31 02:26 +0200)
treea24e38f8b26a1c935c180817275c62fe11e9b584
parent23a85c504dcf6a40a0b6c6f00963032d1e8d62a7
constexpr: add support for tagging address constants

Address constants [6.6(9)] constitute one of the types of constant
expressions allowed in initializers [6.6(7)] for static storage
duration objects [6.7.8(4)].

Introduce a new flag for tagging expressions which qualify as
being an address constant.

Make sure not to carry over the address constant attribute from
subexpressions for operators that never yield address constants,
i.e.  most arithmetic ones, logical ones etc.

Signed-off-by: Nicolai Stange <nicstange@gmail.com>
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
evaluate.c
expression.h