aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2001-04-27 13:33:46 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2001-04-27 13:33:46 +0000
commit2d46ec8394a92a61ce70f4d9893596343b7ba118 (patch)
tree7d0fb4e675649533967a03279dbf0b7bc985ef1f
parent02a1a68c6acafc9d9a1af97a9eefebd9af69d477 (diff)
downloadgcc-2d46ec8394a92a61ce70f4d9893596343b7ba118.zip
gcc-2d46ec8394a92a61ce70f4d9893596343b7ba118.tar.gz
gcc-2d46ec8394a92a61ce70f4d9893596343b7ba118.tar.bz2
except.c (can_convert_eh): Don't check template parms, typename types etc.
cp: * except.c (can_convert_eh): Don't check template parms, typename types etc. testsuite: * g++.old-deja/g++.eh/crash6.C: New test. From-SVN: r41628
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/except.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.eh/crash6.C26
4 files changed, 36 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 7e49e69..fa97ff8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2001-04-27 Nathan Sidwell <nathan@codesourcery.com>
+ * except.c (can_convert_eh): Don't check template parms,
+ typename types etc.
+
+2001-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
* optimize.c (maybe_clone_body): Copy parameter names and locations.
2001-04-27 Nathan Sidwell <nathan@codesourcery.com>
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index c68ea40f..0a50138 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -821,7 +821,7 @@ can_convert_eh (to, from)
/* else fall through */
}
- if (IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from)
+ if (CLASS_TYPE_P (to) && CLASS_TYPE_P (from)
&& PUBLICLY_UNIQUELY_DERIVED_P (to, from))
return 1;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d04c26c..00b94a0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2001-04-27 Nathan Sidwell <nathan@codesourcery.com>
+ * g++.old-deja/g++.eh/crash6.C: New test.
+
+2001-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
* g++.old-deja/g++.other/warn7.C: New test.
2001-04-27 Nathan Sidwell <nathan@codesourcery.com>
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/crash6.C b/gcc/testsuite/g++.old-deja/g++.eh/crash6.C
new file mode 100644
index 0000000..1f5dcce
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.eh/crash6.C
@@ -0,0 +1,26 @@
+// Build don't link:
+//
+// Copyright (C) 2001 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 26 April 2001 <nathan@codesourcery.com>
+// Origin: schmid@snake.iap.physik.tu-darmstadt.de
+
+// Bug 2368. When checking shadowed catchers, we didn't ignore
+// template type parms etc, leading to an ICE
+
+template<class CatchType1, class CatchType2>
+void call(int& a)
+{
+ try
+ {
+
+ }
+ catch (CatchType1&)
+ {
+
+ }
+ catch (CatchType2&)
+ {
+
+ }
+}
+