This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[C++ Patch] PR 70466 ("ICE on invalid code in tree check: expected constructor, have parm_decl in convert_like_real...")


Hi,

in this ICE during error recovery, the check in convert_like_real:

        if (CONSTRUCTOR_NELTS (expr) == 0
        && FUNCTION_FIRST_USER_PARMTYPE (convfn) != void_list_node)

is reached for a PARM_DECL as expr. I think that the correct way to avoid in general such problem is adding (here too, as elsewhere) a check that BRACE_ENCLOSED_INITIALIZER_P (expr) is true to the outer conditional, for sure because talking about "converting to %qT from initializer list would use explicit constructor %qD", which happens anyway in the above conditional, otherwise doesn't make sense. Tested x86_64-linux.

Thanks,
Paolo.

/////////////////////////////

Attachment: CL_70466
Description: Text document

Attachment: patch_70466
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]