Objective-C++ : Fix ICE in potential_constant_expression_1.
authorIain Sandoe <iain@sandoe.co.uk>
Sat, 31 Oct 2020 09:25:47 +0000 (09:25 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Wed, 4 Nov 2020 08:06:13 +0000 (08:06 +0000)
commit878cffbd9e6e1b138a6e0d362e7b29bc0a259940
tree68cbe595c0a38ade3813ac1e25e631f12998840e
parentc19e44ac8dbc9af07e5e671edfa03ab5b08649c5
Objective-C++ : Fix ICE in potential_constant_expression_1.

We cannot, as things stand, handle Objective-C tree codes in
the switch and deal with this by calling out to a function that
has a dummy version when Objective-C is not enabled.

Because of the way the logic works (with a fall through to a
'sorry' in case of unhandled expressions), the function reports
cases that are known to be unsuitable for constant exprs. The
dummy function always reports 'false' and thus will fall through
to the 'sorry'.

gcc/c-family/ChangeLog:

* c-objc.h (objc_non_constant_expr_p): New.
* stub-objc.c (objc_non_constant_expr_p): New.

gcc/cp/ChangeLog:

* constexpr.c (potential_constant_expression_1): Handle
expressions known to be non-constant for Objective-C.

gcc/objc/ChangeLog:

* objc-act.c (objc_non_constant_expr_p): New.
gcc/c-family/c-objc.h
gcc/c-family/stub-objc.c
gcc/cp/constexpr.c
gcc/objc/objc-act.c