aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2001-02-05 17:15:33 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2001-02-05 17:15:33 +0000
commit518fed76bc0e6ae59759d248e1717117921427e6 (patch)
tree3ae0aeabb60e689e7a2cf37cdb0110e08cba20ae
parent480cd7780df68117dfe6d7fa194932e75575a397 (diff)
downloadgcc-518fed76bc0e6ae59759d248e1717117921427e6.zip
gcc-518fed76bc0e6ae59759d248e1717117921427e6.tar.gz
gcc-518fed76bc0e6ae59759d248e1717117921427e6.tar.bz2
method.c (build_mangled_name): Protect flush_repeats() from error_mark_node.
* method.c (build_mangled_name) [old abi]: Protect flush_repeats() from error_mark_node. From-SVN: r39460
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/method.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 04d64a0..72bc2f0 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-05 Alexandre Oliva <aoliva@redhat.com>
+
+ * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
+ from error_mark_node.
+
2001-02-05 Nathan Sidwell <nathan@codesourcery.com>
Fix specification and implementation bugs in V3 ABI
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 51e0c5c..30ede1b 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1213,6 +1213,16 @@ build_mangled_name (parmtypes, begin, end)
nrepeats = 0;
}
+ /* Insead of protecting flush_repeats() against
+ error_mark_node, we can do it here. Since we wouldn't
+ add anything for an ERROR_MARK anyway, it's ok to skip
+ the mangling for this type. */
+ if (old_style_repeats && parmtype == error_mark_node)
+ {
+ last_type = NULL_TREE;
+ continue;
+ }
+
last_type = parmtype;
/* Note that for bug-compatibility with 2.7.2, we can't build up