diff options
author | Simon Martin <simon@nasilyan.com> | 2024-06-04 21:20:23 +0200 |
---|---|---|
committer | Simon Martin <simon@nasilyan.com> | 2024-06-07 20:40:16 +0200 |
commit | 0ce138694a6b40708a80691fa4003f6af1defa49 (patch) | |
tree | f734191bf3654c151bec0bb2ae74c0222d0a9f8a /libcpp | |
parent | a29f481bbcaf2b196f358122a5f1e45c6869df82 (diff) | |
download | gcc-0ce138694a6b40708a80691fa4003f6af1defa49.zip gcc-0ce138694a6b40708a80691fa4003f6af1defa49.tar.gz gcc-0ce138694a6b40708a80691fa4003f6af1defa49.tar.bz2 |
c++: Handle erroneous DECL_LOCAL_DECL_ALIAS in duplicate_decls [PR107575]
We currently ICE upon the following because we don't properly handle local
functions with an error_mark_node as DECL_LOCAL_DECL_ALIAS in duplicate_decls.
=== cut here ===
void f (void) {
virtual int f (void) const;
virtual int f (void);
}
=== cut here ===
This patch fixes this by checking for error_mark_node.
Successfully tested on x86_64-pc-linux-gnu.
PR c++/107575
gcc/cp/ChangeLog:
* decl.cc (duplicate_decls): Check for error_mark_node
DECL_LOCAL_DECL_ALIAS.
gcc/testsuite/ChangeLog:
* g++.dg/parse/crash74.C: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions