diff options
| author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-05 19:08:12 +0000 |
|---|---|---|
| committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-05 19:08:12 +0000 |
| commit | 96642f8a03743abd430b577f68d63a72bcd43f25 (patch) | |
| tree | a2782d0a70028fe7eb431d9f2fb5070263765d63 | |
| parent | 0042db884a799c0299c12df52f4fcdfe1f14a37c (diff) | |
| download | ppe42-gcc-96642f8a03743abd430b577f68d63a72bcd43f25.tar.gz ppe42-gcc-96642f8a03743abd430b577f68d63a72bcd43f25.zip | |
PR c++/21352
* pt.c (build_non_dependent_expr): Use is_overloaded_fn.
PR c++/21352
* g++.dg/template/crash37.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99281 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/pt.c | 5 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/template/crash37.C | 26 |
4 files changed, 37 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index dab19ae2c24..478aa84daa4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-05 Mark Mitchell <mark@codesourcery.com> + + PR c++/21352 + * pt.c (build_non_dependent_expr): Use is_overloaded_fn. + 2005-05-05 Kazu Hirata <kazu@cs.umass.edu> * pt.c: Fix a comment typo. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 32ff4964736..9006ab910f5 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -12505,10 +12505,7 @@ build_non_dependent_expr (tree expr) types. */ inner_expr = (TREE_CODE (expr) == ADDR_EXPR ? TREE_OPERAND (expr, 0) : expr); - if (TREE_CODE (inner_expr) == OVERLOAD - || TREE_CODE (inner_expr) == FUNCTION_DECL - || TREE_CODE (inner_expr) == TEMPLATE_DECL - || TREE_CODE (inner_expr) == TEMPLATE_ID_EXPR + if (is_overloaded_fn (inner_expr) || TREE_CODE (inner_expr) == OFFSET_REF) return expr; /* There is no need to return a proxy for a variable. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dfd22381ba0..c981cee51d2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-05-05 Mark Mitchell <mark@codesourcery.com> + + PR c++/21352 + * g++.dg/template/crash37.C: New test. + 2005-05-05 Paul Brook <paul@codesourcery.com> * gcc.dg/arm-g2.c: Use effective-target arm32. diff --git a/gcc/testsuite/g++.dg/template/crash37.C b/gcc/testsuite/g++.dg/template/crash37.C new file mode 100644 index 00000000000..b2f0cdb7b66 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash37.C @@ -0,0 +1,26 @@ +// PR c++/21352 + +struct coperator_stack +{ + template<class type> + void push3() + { + } +}; + +struct helper {}; + +template<class F> +void bla(F f) +{ +} + +template <typename ScannerT> +struct definition +{ + definition() + { + bla(coperator_stack::push3<helper>); // { dg-error "" } + } +}; + |

