diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2013-08-15 22:02:56 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2013-08-15 22:02:56 +0000 |
commit | 89fe0d5842469f231c2a0649ff6d88ade892e6e8 (patch) | |
tree | 2e2d76928ebf201f5011b76e5c2340e4c01a780a /clang/test/SemaTemplate/instantiate-init.cpp | |
parent | 35b22f69851dee2fb9e17d94ccf26967b5cf3399 (diff) | |
download | bcm5719-llvm-89fe0d5842469f231c2a0649ff6d88ade892e6e8.tar.gz bcm5719-llvm-89fe0d5842469f231c2a0649ff6d88ade892e6e8.zip |
Properly track l-paren of a CXXFucntionalCastExpr.
In addition to storing more useful information in the AST, this
fixes a semantic check in template instantiation which checks whether
the l-paren location is valid.
Fixes PR16903.
llvm-svn: 188495
Diffstat (limited to 'clang/test/SemaTemplate/instantiate-init.cpp')
-rw-r--r-- | clang/test/SemaTemplate/instantiate-init.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/instantiate-init.cpp b/clang/test/SemaTemplate/instantiate-init.cpp index 6a1a57ca659..22c70be3a8d 100644 --- a/clang/test/SemaTemplate/instantiate-init.cpp +++ b/clang/test/SemaTemplate/instantiate-init.cpp @@ -118,3 +118,18 @@ namespace PR13064 { template<typename T> struct C { T a = { 0 }; }; // expected-error{{explicit}} C<A> c; // expected-note{{here}} } + +namespace PR16903 { + // Make sure we properly instantiate list-initialization. + template<typename T> + void fun (T it) { + int m = 0; + for (int i = 0; i < 4; ++i, ++it){ + m |= long{char{*it}}; + } + } + int test() { + char in[4] = {0,0,0,0}; + fun(in); + } +} |