+2005-09-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/18803
+ Revert:
+
+ 2005-09-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ PR c++/18445
+ * class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
+ unknown_type as non matching.
+ * pt.c (build_non_dependent_expr): Do not build a
+ NON_DEPENDENT_EXPR for a VAR_DECL.
+
2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
Backport:
if (TREE_CODE (rhs) == BASELINK)
rhs = BASELINK_FUNCTIONS (rhs);
- /* If we are in a template, and have a NON_DEPENDENT_EXPR, we cannot
- deduce any type information. */
- if (TREE_CODE (rhs) == NON_DEPENDENT_EXPR)
- {
- if (flags & tf_error)
- error ("not enough type information");
- return error_mark_node;
- }
-
/* We don't overwrite rhs if it is an overloaded function.
Copying it would destroy the tree link. */
if (TREE_CODE (rhs) != OVERLOAD)
|| TREE_CODE (inner_expr) == TEMPLATE_ID_EXPR
|| TREE_CODE (inner_expr) == OFFSET_REF)
return expr;
- /* There is no need to return a proxy for a variable. */
- if (TREE_CODE (expr) == VAR_DECL)
- return expr;
/* Preserve string constants; conversions from string constants to
"char *" are allowed, even though normally a "const char *"
cannot be used to initialize a "char *". */
+2005-09-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/18803
+ g++.dg/template/operator5.C: New test.
+
+ PR c++/18445
+ g++.dg/template/crash28.C: Remove.
+
2005-09-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
Backport from mainline:
+++ /dev/null
-// PR c++/18445
-
-struct a
-{
- int what();
-};
-void g(void*);
-template<class T>
-void f()
-{
- a ex;
- g(ex.what); // { dg-error "not enough type information" }
-}