]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: vtable referring to "unavailable" virtual fn [PR116606]
authorMarek Polacek <polacek@redhat.com>
Thu, 5 Sep 2024 17:01:59 +0000 (13:01 -0400)
committerMarek Polacek <polacek@redhat.com>
Thu, 5 Sep 2024 19:21:47 +0000 (15:21 -0400)
commitd9d34f9a91371dea4bab0b54b2d7f762a6cc23e0
tree791d884f688fdf693a90b3f4a6785aa5e92546d5
parent7d1483921941d21d91f929ef0d59a9794b1946b4
c++: vtable referring to "unavailable" virtual fn [PR116606]

mark_vtable_entries already has

   /* It's OK for the vtable to refer to deprecated virtual functions.  */
   warning_sentinel w(warn_deprecated_decl);

but that doesn't cover __attribute__((unavailable)).  We can use the
following override to cover both.

PR c++/116606

gcc/cp/ChangeLog:

* decl2.cc (mark_vtable_entries): Temporarily override deprecated_state to
UNAVAILABLE_DEPRECATED_SUPPRESS.  Remove a warning_sentinel.

gcc/testsuite/ChangeLog:

* g++.dg/ext/attr-unavailable-13.C: New test.
gcc/cp/decl2.cc
gcc/testsuite/g++.dg/ext/attr-unavailable-13.C [new file with mode: 0644]