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
This commit is contained in:
parent
a33ad58be1
commit
a41acf5f3e
@ -1,5 +1,8 @@
|
||||
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)
|
||||
|
7
gcc/testsuite/g++.dg/template/array28.C
Normal file
7
gcc/testsuite/g++.dg/template/array28.C
Normal file
@ -0,0 +1,7 @@
|
||||
typedef int (A)[];
|
||||
|
||||
template<class T> void f(T (*)[1]); // { dg-error "array" }
|
||||
|
||||
int main() {
|
||||
f<int[]>(0); // { dg-error "no match" }
|
||||
}
|
Loading…
Reference in New Issue
Block a user