mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
2d91f79dc9
commit
345364cf7f
|
|
@ -1,3 +1,9 @@
|
||||||
|
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>
|
2019-01-14 Tom Honermann <tom@honermann.net>
|
||||||
|
|
||||||
Implement P0482R5, char8_t: A type for UTF-8 characters and strings
|
Implement P0482R5, char8_t: A type for UTF-8 characters and strings
|
||||||
|
|
|
||||||
|
|
@ -2229,6 +2229,7 @@ maybe_emit_vtables (tree ctype)
|
||||||
never get generated. */
|
never get generated. */
|
||||||
if (CLASSTYPE_PURE_VIRTUALS (ctype)
|
if (CLASSTYPE_PURE_VIRTUALS (ctype)
|
||||||
&& TYPE_HAS_NONTRIVIAL_DESTRUCTOR (ctype)
|
&& TYPE_HAS_NONTRIVIAL_DESTRUCTOR (ctype)
|
||||||
|
&& !CLASSTYPE_LAZY_DESTRUCTOR (ctype)
|
||||||
&& DECL_DEFAULTED_IN_CLASS_P (CLASSTYPE_DESTRUCTOR (ctype)))
|
&& DECL_DEFAULTED_IN_CLASS_P (CLASSTYPE_DESTRUCTOR (ctype)))
|
||||||
note_vague_linkage_fn (CLASSTYPE_DESTRUCTOR (ctype));
|
note_vague_linkage_fn (CLASSTYPE_DESTRUCTOR (ctype));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
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>
|
2019-01-14 Martin Sebor <msebor@redhat.com>
|
||||||
|
|
||||||
PR target/88638
|
PR target/88638
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
// 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 &) {}
|
||||||
Loading…
Reference in New Issue