[Bug c++/80186] ICE on C++ code with invalid constructor on x86_64-linux-gnu: Segmentation fault (program cc1plus)
paolo.carlini at oracle dot com
gcc-bugzilla@gcc.gnu.org
Mon Mar 27 10:38:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80186
--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> ---
I believe this can be fixed by checking the return value of
grok_ctor_properties (consistently with its other usage in decl.c):
Index: pt.c
===================================================================
--- pt.c (revision 246492)
+++ pt.c (working copy)
@@ -12408,8 +12408,8 @@ tsubst_decl (tree t, tree args, tsubst_flags_t com
if (DECL_CONSTRUCTOR_P (r) || DECL_DESTRUCTOR_P (r))
{
maybe_retrofit_in_chrg (r);
- if (DECL_CONSTRUCTOR_P (r))
- grok_ctor_properties (ctx, r);
+ if (DECL_CONSTRUCTOR_P (r) && !grok_ctor_properties (ctx, r))
+ RETURN (error_mark_node);
/* If this is an instantiation of a member template, clone it.
If it isn't, that'll be handled by
clone_constructors_and_destructors. */
More information about the Gcc-bugs
mailing list