From d6605dbbc034ba8686f7e69b71cf0bb6ec8f0906 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 22 Jul 2009 21:30:48 +0000 Subject: Fix the problems with template argument deduction and array types for real. It turns out that we need to actually move all of the qualifiers up to the array type itself, then recanonicalize the deduced template argument type. llvm-svn: 76788 --- clang/test/SemaTemplate/temp_class_spec.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'clang/test/SemaTemplate/temp_class_spec.cpp') diff --git a/clang/test/SemaTemplate/temp_class_spec.cpp b/clang/test/SemaTemplate/temp_class_spec.cpp index b1053fe3cb7..9087b012b32 100644 --- a/clang/test/SemaTemplate/temp_class_spec.cpp +++ b/clang/test/SemaTemplate/temp_class_spec.cpp @@ -94,7 +94,20 @@ struct remove_reference { int remove_ref0[is_same::type, int>::value? 1 : -1]; int remove_ref1[is_same::type, int>::value? 1 : -1]; - + +template +struct remove_const { + typedef T type; +}; + +template +struct remove_const { + typedef T type; +}; + +int remove_const0[is_same::type, int>::value? 1 : -1]; +int remove_const1[is_same::type, int[3]>::value? 1 : -1]; + template struct is_incomplete_array { static const bool value = false; -- cgit v1.2.3