Commit a41acf5f by Jason Merrill Committed by Jason Merrill

pt.c (tsubst): Check for array of array of unknown bound.

	* pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
	bound.

From-SVN: r211025
parent a33ad58b
2014-05-28 Jason Merrill <jason@redhat.com>
* pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
bound.
PR c++/61242
* call.c (build_aggr_conv): Ignore passed in flags.
(build_array_conv, build_complex_conv): Likewise.
......
......@@ -12084,7 +12084,7 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
if (type == TREE_TYPE (t) && domain == TYPE_DOMAIN (t))
return t;
/* These checks should match the ones in grokdeclarator.
/* These checks should match the ones in create_array_type_for_decl.
[temp.deduct]
......@@ -12095,6 +12095,8 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
an abstract class type. */
if (VOID_TYPE_P (type)
|| TREE_CODE (type) == FUNCTION_TYPE
|| (TREE_CODE (type) == ARRAY_TYPE
&& TYPE_DOMAIN (type) == NULL_TREE)
|| TREE_CODE (type) == REFERENCE_TYPE)
{
if (complain & tf_error)
......
typedef int (A)[];
template<class T> void f(T (*)[1]); // { dg-error "array" }
int main() {
f<int[]>(0); // { dg-error "no match" }
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment