diff options
author | Gabriel Dos Reis <gdr@merlin.codesourcery.com> | 2002-03-23 01:24:18 +0000 |
---|---|---|
committer | Gabriel Dos Reis <gdr@gcc.gnu.org> | 2002-03-23 01:24:18 +0000 |
commit | acb044eef18c3171530b5499f960fa2ab7989a16 (patch) | |
tree | 2baf46dc04e56f27a0b1d1786859d07ce2ea385c /gcc/cp | |
parent | c58408bf8deb973f7aecbff4c80a093ba2203569 (diff) | |
download | gcc-acb044eef18c3171530b5499f960fa2ab7989a16.zip gcc-acb044eef18c3171530b5499f960fa2ab7989a16.tar.gz gcc-acb044eef18c3171530b5499f960fa2ab7989a16.tar.bz2 |
re PR c++/3656 (ICE when incorrectly deriving a class from a templated base in another namespace)
cp/
PR C++/3656
* semantics.c (finish_base_specifier): Handle erronous base
classes.
testsuite/
* g++.dg/inherit/template-as-base.C: New test.
From-SVN: r51214
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 01a5f67..42c2e9bf 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com> + + PR C++/3656 + * semantics.c (finish_base_specifier): Handle erronous base + classes. + 2002-03-22 Zack Weinberg <zack@codesourcery.com> * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 14ecf05..29e49fa 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2026,7 +2026,12 @@ finish_base_specifier (access_specifier, base_class) { tree result; - if (! is_aggr_type (base_class, 1)) + if (base_class == error_mark_node) + { + error ("invalid base-class specification"); + result = NULL_TREE; + } + else if (! is_aggr_type (base_class, 1)) result = NULL_TREE; else { |