[Bug c++/77592] gcc accepts delegated constructor with circular reference
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 14 15:20:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77592
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Gawain Bolton from comment #0)
> Compilation segfaults using gcc v5.3, v6.1 and gcc HEAD 7.0.0 20160913
Compilation works fine, the executable segfaults, due to a stack overflow.
The standard says your code is "ill-formed, no diagnostic required" so
compilers aren't required to reject the code, but it would be nice to diagnose
it.
Clang does:
circ.cc:10:7: error: constructor for 'T' creates a delegation cycle
[-Wdelegating-ctor-cycles]
: T(i,s)
^
circ.cc:3:5: note: it delegates to
T(const int i,
^
circ.cc:8:5: note: which delegates to
T(const char * s,
^
And EDG does:
"circ.cc", line 10: error: constructor delegates directly or indirectly to
itself
: T(i,s)
^
More information about the Gcc-bugs
mailing list