diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-01-31 22:45:40 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-01-31 22:45:40 +0000 |
commit | 87d32809855c0e34b07809985627ccf84d3ab3d3 (patch) | |
tree | 393c47819d4f2012c19cb0a21ff8d9025c501c66 /clang/test/SemaCXX/for-range-examples.cpp | |
parent | a223401498fd0df90007710e9eef5560a80c637d (diff) | |
download | bcm5719-llvm-87d32809855c0e34b07809985627ccf84d3ab3d3.tar.gz bcm5719-llvm-87d32809855c0e34b07809985627ccf84d3ab3d3.zip |
A couple minor fixes to template instantiation for for-range loops.
llvm-svn: 149440
Diffstat (limited to 'clang/test/SemaCXX/for-range-examples.cpp')
-rw-r--r-- | clang/test/SemaCXX/for-range-examples.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/for-range-examples.cpp b/clang/test/SemaCXX/for-range-examples.cpp index dd356032cfb..868de9d4f0e 100644 --- a/clang/test/SemaCXX/for-range-examples.cpp +++ b/clang/test/SemaCXX/for-range-examples.cpp @@ -158,3 +158,14 @@ namespace test2 { for (int x : a.xs) { } // expected-error {{'xs' is a private member of 'test2::A'}} } } + +namespace test3 { + // Make sure this doesn't crash + struct A {}; + struct B { ~B(); operator bool(); }; + struct C { B operator!=(const C&); C& operator++(); int operator*(); }; + C begin(const A&); + C end(const A&); + template<typename T> void f() { for (auto a : A()) {} } + void g() { f<int>(); } +} |