Commit 345364cf by Marek Polacek Committed by Marek Polacek

PR c++/88830 - ICE with abstract class.

	* decl2.c (maybe_emit_vtables): Check CLASSTYPE_LAZY_DESTRUCTOR.
	Fix formatting.

	* g++.dg/other/abstract7.C: New test.

From-SVN: r267924
parent 2d91f79d
2019-01-14 Marek Polacek <polacek@redhat.com>
PR c++/88830 - ICE with abstract class.
* decl2.c (maybe_emit_vtables): Check CLASSTYPE_LAZY_DESTRUCTOR.
Fix formatting.
2019-01-14 Tom Honermann <tom@honermann.net>
Implement P0482R5, char8_t: A type for UTF-8 characters and strings
......
......@@ -2229,8 +2229,9 @@ maybe_emit_vtables (tree ctype)
never get generated. */
if (CLASSTYPE_PURE_VIRTUALS (ctype)
&& TYPE_HAS_NONTRIVIAL_DESTRUCTOR (ctype)
&& DECL_DEFAULTED_IN_CLASS_P(CLASSTYPE_DESTRUCTOR(ctype)))
note_vague_linkage_fn (CLASSTYPE_DESTRUCTOR(ctype));
&& !CLASSTYPE_LAZY_DESTRUCTOR (ctype)
&& DECL_DEFAULTED_IN_CLASS_P (CLASSTYPE_DESTRUCTOR (ctype)))
note_vague_linkage_fn (CLASSTYPE_DESTRUCTOR (ctype));
/* Since we're writing out the vtable here, also write the debug
info. */
......
2019-01-14 Marek Polacek <polacek@redhat.com>
PR c++/88830 - ICE with abstract class.
* g++.dg/other/abstract7.C: New test.
2019-01-14 Martin Sebor <msebor@redhat.com>
PR target/88638
......
// PR c++/88830
struct a {
~a();
};
class b {
virtual void c(int &);
};
class C : b {
void c(int &);
virtual int d() = 0;
a e;
};
void C::c(int &) {}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment