[taken from gcc-2.96]

2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
	* typeck.c (build_c_cast): Do template processing earlier.
	2001-08-09  Jakub Jelinek  <jakub@redhat.com>
	* g++.old-deja/g++.other/array3.C: New test.


git-svn-id: file:///srv/svn/repos/haiku/trunk/buildtools@9602 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Oliver Tappe 2004-10-28 18:26:46 +00:00
parent c4c981ccea
commit 823a7d17d5

View File

@ -5710,6 +5710,13 @@ build_c_cast (type, expr)
if (type == error_mark_node || expr == error_mark_node)
return error_mark_node;
if (processing_template_decl)
{
tree t = build_min (CAST_EXPR, type,
min_tree_cons (NULL_TREE, value, NULL_TREE));
return t;
}
/* build_c_cast puts on a NOP_EXPR to make the result not an lvalue.
Strip such NOP_EXPRs if VALUE is being used in non-lvalue context. */
if (TREE_CODE (type) != REFERENCE_TYPE
@ -5751,13 +5758,6 @@ build_c_cast (type, expr)
return error_mark_node;
}
if (processing_template_decl)
{
tree t = build_min (CAST_EXPR, type,
min_tree_cons (NULL_TREE, value, NULL_TREE));
return t;
}
/* Convert functions and arrays to pointers and
convert references to their expanded types,
but don't convert any other types. If, however, we are