On 02/01/2017 08:24 AM, Paolo Carlini wrote:
Hi,
I'm still working on a number of ICEs on invalid happening during error
recovery...
In these cases, after a meaningful diagnostic, we ICE in
cxx_eval_constant_expression because it doesn't handle OVERLOADs and
TEMPLATE_ID_EXPRs in the main switch. I tried a number of different
approaches, but I think the most straightforward one is the below: avoid
setting up in grokbitfield DECL_INITIAL (and SET_DECL_C_BIT_FIELD)
after the early diagnostic, exactly as currently happens when the width
passed to the function is an error_mark_node. In particular, the
approach seems robust because the callers don't use the the width
information afterward (it's only passed to grokbitfield). Tested
x86_64-linux.
ok, thanks
--
Nathan Sidwell