diff options
author | Jason Merrill <jason@redhat.com> | 2013-05-14 16:36:32 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2013-05-14 16:36:32 -0400 |
commit | 71b04de2fb6c33227da78045728e52401081a759 (patch) | |
tree | f544ee90f4214df93972d07cf8987c7000777048 /gcc/testsuite | |
parent | 2e55d0628102889d377feec36ca7699abd8afb1e (diff) | |
download | gcc-71b04de2fb6c33227da78045728e52401081a759.zip gcc-71b04de2fb6c33227da78045728e52401081a759.tar.gz gcc-71b04de2fb6c33227da78045728e52401081a759.tar.bz2 |
re PR c++/57243 (Using auto in range based for with templated container in templated function requires extraneous template qualifier)
PR c++/57243
* parser.c (cp_parser_range_for): Call complete_type.
From-SVN: r198901
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/range-for25.C | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/range-for25.C b/gcc/testsuite/g++.dg/cpp0x/range-for25.C new file mode 100644 index 0000000..8ba9f65 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/range-for25.C @@ -0,0 +1,30 @@ +// PR c++/57243 +// { dg-require-effective-target c++11 } + +struct snarf +{ + template <class T> + void get() {} +}; + +template <class T> +struct container +{ + snarf * begin() { return nullptr; } + snarf * end() { return nullptr; } +}; + +template <class T> +void foo() +{ + container<int> arr; + + for( auto i : arr ) + i.get<int>(); +} + +int main() +{ + return 0; +} + |